+62 812-1171-5379 Fast Respond

Tips dan Trik Delphi - Tool

Membalik kata atau kalimat / Tool / Windows Android / Delphi 7 - XE
function ReverseString1(const s: string): string;
var
  i, len: Integer;
begin
  len := Length(s);
  SetLength(Result, len);
  for i := len downto 1 do
  begin
    Result[len - i + 1] := s[i];
  end;
end;

Menggunakan Chart / Tool / Windows / Delphi 7 - XE
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j, kum: Integer;
  s, t: TLineSeries;
begin
    with Chart1 do
    begin
        Title.Text.Clear;
        Title.Text.Add('Tampilan Penjualan');

        s := TLineSeries.Create(nil);
        s.Clear;
        s.Title := 'Fathin';
        s.ParentChart := Chart1;
        s.XValues.DateTime := True;

        t := TLineSeries.Create(nil);
        t.Clear;
        t.Title       := 'DZaki';
        t.ParentChart := Chart1;
        t.XValues.DateTime := True;
        t.VertAxis := aRightAxis;

        for i := 0 to 3 do
        begin
            j := Random(100);
            s.AddXY(Date + i, j);
            kum := kum + j;
            t.AddXY(Date + i, kum);
        end;
    end;
End;

Menampilkan pesan pertanyaan pada delphi android / Tool / Android / XE

procedure TForm1.RoundRect2Click(Sender: TObject);
begin
    MessageDlg('Apakah anda yakin akan mengakhiri kegiatan ?',
    System.UITypes.TMsgDlgType.mtInformation,
    [
      System.UITypes.TMsgDlgBtn.mbNo,
      System.UITypes.TMsgDlgBtn.mbYes
    ], 0,
    procedure(const AResult: System.UITypes.TModalResult)
    var Key : word;
    begin
         case AResult of
            mrYes: begin
                       ShowMessage('Jawab Y');
                   end;
            mrNo : begin
                        ShowMessage('Jawab N');
                   end;
         end;
    end);
end;

Mereset komponen edit / Tool / Windows / Delphi 7 - XE

for i := 0 to ComponentCount-1 do
    begin
      if( Components[ i ] is TEdit )then
      begin
        (Components[ i ] as TEdit).clear;
      end;
  end;

Merubah koma menjadi titik / Tool / Windows / Delphi 7 - XE

Cara ini pada umumnya dipakai untuk menanggulangi format regional, berikut koding yang bisa anda gunakan


function komajadititik(txt:string):string;
var i:byte;
    str, Tempstr : String;
begin
   i :=1;
   for i := 1 to length(txt) do
   begin
        str:= copy(txt,i,1);
        if str=',' then
        begin
           str:='.';
        end;
        tempstr := tempstr + str;
   end;
   Result := Tempstr;
end;

Membuat unit lengkap / Tool / Windows / Delphi 7 - XE

Unit ini siap dipakai, simpan dengan nama global.pas


unit Global;

{
    Fathon Sugiharta (c) 2022
    www.kursusdelphi.com
    -----------------------------------
    v  = variable global
    vl = variable lokal dalam procedure
    vu = variable lokal dalam unit
}

interface

uses

  DB, ADODB, Forms, dialogs, StdCtrls, Grids, Windows, Controls, Registry, shellapi, strutils,
  SysUtils, dateutils, Variants, Classes, Graphics, ActnList, ExtCtrls, MyAccess, MemDS;

type
  str1   = string[1];
  str10  = string[10];

const
  OnAppend = 1;
  OnEdit = 2;
  OnBrowse = 3;
  OnIdle = 0;
  Versi = '1.1.2';

var
  tahun_skr, bulan_skr, tanggal_skr : String;
  vYY,vMM,vDD : word;
  UserID, UserName: String;

  // Profile
  badan_usaha, nama_perusahaan,  Alamat_perusahaan, Info_perusahaan, alamat, telpon, fax, email, lokasikantor, status_kantor : String;
  gudangpenerima, kepalagudang : String;

  // Pelanggan
  kode_pelanggan : integer;

  Function Namahari(tgl : Tdatetime) : String;
  Function Namabulan(val : byte) : String;
  Function CariQuery(Query: String; Dataset: TADODataset): Boolean;
  Function ExecQueryMy(Query: String; Dataset: TMyQuery): Boolean;
  function Peringatanku(isi:String):word;
  function Pertanyaanku(isi:String):word;
  function Pesanku(isi:String):word;


implementation

Function Namahari(tgl : Tdatetime) : String;
Begin
     case DayOfTheWeek(tgl) of
        0 : Result := 'Minggu';
        1 : Result := 'Senin';
        2 : Result := 'Selasa';
        3 : Result := 'Rabu';
        4 : Result := 'Kamis';
        5 : Result := 'Jumat';
        6 : Result := 'Sabtu';
        7 : Result := 'Minggu';
     end;
End;

Function Namabulan(val : byte) : String;
Begin
     if (val = 1) then
     begin
          Result := 'JANUARI';
     end;

     if (val = 2) then
     begin
          Result := 'FEBRUARI';
     end;

     if (val = 3) then
     begin
          Result := 'MARET';
     end;

     if (val = 4) then
     begin
          Result := 'APRIL';
     end;

     if (val = 5) then
     begin
          Result := 'MEI';
     end;

     if (val = 6) then
     begin
          Result := 'JUNI';
     end;

     if (val = 7) then
     begin
          Result := 'JULI';
     end;

     if (val = 8) then
     begin
          Result := 'AGUSTUS';
     end;

     if (val = 9) then
     begin
          Result := 'SEPTEMBER';
     end;

     if (val = 10) then
     begin
          Result := 'OKTOBER';
     end;

     if (val = 11) then
     begin
          Result := 'NOVEMBER';
     end;

     if (val = 12) then
     begin
          Result := 'DESEMBER';
     end;

End;

Function CariQuery(Query: String; Dataset: TADODataset): Boolean;
begin
    if not Dataset.Prepared then
       Dataset.Prepared := True;
    Dataset.Close;
    Dataset.CommandText := Query;
    Dataset.Open;
    if Not (Dataset.Eof or Dataset.IsEmpty) Then
    Begin
       Result:=true;
    end else
    begin
       Result:=False;
    end;
end;

Function ExecQueryMy(Query: String; Dataset: TMyQuery): Boolean;
begin
     Result := False;
     Dataset.Close;
     Dataset.SQL.Clear;
     Dataset.SQL.Text := Query;
     Dataset.Execute;
     Result := True;
end;

function Pesanku(isi:String):word;
Begin
    Application.RestoreTopMosts;
    MessageDlg(isi, mtInformation, [mbOK], 0);
    Application.RestoreTopMosts;
end;

function Peringatanku(isi:String):word;
Begin
    Application.RestoreTopMosts;
    MessageDlg(isi, mtInformation, [mbOk],0);
    Application.RestoreTopMosts;
end;

function Pertanyaanku(isi:String):word;
Begin
    Application.RestoreTopMosts;
    if MessageDlg(isi, mtConfirmation, [mbYes, mbNo],0) = mrYes Then
    begin
         Result := mryes;
    end else
    begin
         Result := mrNo;
    end;
    Application.RestoreTopMosts;
end;

Procedure MouseProses;
Begin
    Screen.Cursor:= crHourGlass;
end;

Procedure Mousenormal;
Begin
   Screen.Cursor:= crDefault;
end;

Function QueryCari(Query: String; Dataset: TADODataset; Namafield:String):String;
Var aktif:boolean;
begin
    if not Dataset.Prepared then
       Dataset.Prepared := True;
    Dataset.Close;
    Dataset.CommandText := Query;
    Dataset.Open;
    if not Dataset.Eof Then
    Begin
        Result:=Dataset.FieldByName(Namafield).AsString;
    end else
    Begin
        Result:='';
    end;
end;

end.

// Akhir file


Enkripsi hash MD5 langsung satu file / Tool / Windows / Delphi 7 - XE


function GetFileHashMD5(FileName: WideString): String;
var
  HashMD5: THashMD5;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashMD5 := THashMD5.Create;
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashMD5.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashMD5.HashAsString;
end;
 
function GetFileHashSHA1(FileName: WideString): String;
var
  HashSHA: THashSHA1;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA1.Create;
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
 
function GetFileHashSHA224(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA224);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashSHA256(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA256);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashSHA384(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA384);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashSHA512(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA512);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashSHA512_224(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA512_224);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashSHA512_256(FileName: WideString): String;
var
  HashSHA: THashSHA2;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  HashSHA := THashSHA2.Create(SHA512_256);
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          HashSHA.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := HashSHA.HashAsString;
end;
 
function GetFileHashBobJenkins(FileName: WideString): String;
var
  Hash: THashBobJenkins;
  Stream: TStream;
  Readed: Integer;
  Buffer: PByte;
  BufLen: Integer;
begin
  Hash := THashBobJenkins.Create;
  BufLen := 16 * 1024;
  Buffer := AllocMem(BufLen);
  try
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      while Stream.Position < Stream.Size do
      begin
        Readed := Stream.Read(Buffer^, BufLen);
        if Readed > 0 then
        begin
          Hash.update(Buffer^, Readed);
        end;
      end;
    finally
      Stream.Free;
    end;
  finally
    FreeMem(Buffer)
  end;
  result := Hash.HashAsString;
end;

Enkripsi password menggunakan HASH MD5 / Tool / Windows / Delphi 7 - XE


// Panggil Unit System.Hash;
Silahkan gunakan function dibawah ini sesuai kesepakatan Anda

Uses System.Hash;
function GetStrHashMD5(Str: String): String;
var
  HashMD5: THashMD5;
begin
    HashMD5 := THashMD5.Create;
    HashMD5.GetHashString(Str);
    result := HashMD5.GetHashString(Str);
end;

function GetStrHashSHA1(Str: String): String;
var
  HashSHA: THashSHA1;
begin 
    HashSHA := THashSHA1.Create;
    HashSHA.GetHashString(Str);
    result := HashSHA.GetHashString(Str);
end;

function GetStrHashSHA224(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    result := HashSHA.GetHashString(Str,SHA224);
end;

function GetStrHashSHA256(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    result := HashSHA.GetHashString(Str,SHA256);
end;

function GetStrHashSHA384(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    result := HashSHA.GetHashString(Str,SHA384);
end;

function GetStrHashSHA512(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    Result := HashSHA.GetHashString(Str,SHA512);
end;

function GetStrHashSHA512_224(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    Result := HashSHA.GetHashString(Str,SHA512_224);
end;

function GetStrHashSHA512_256(Str: String): String;
var
  HashSHA: THashSHA2;
begin
    HashSHA := THashSHA2.Create;
    HashSHA.GetHashString(Str);
    Result := HashSHA.GetHashString(Str,SHA512_256);
end;

function GetStrHashBobJenkins(Str: String): String;
var
  Hash: THashBobJenkins;
begin
    Hash := THashBobJenkins.Create;
    Hash.GetHashString(Str);
    Result := Hash.GetHashString(Str);
end;



Enkripsi password menggunakan MD5 / Tool / Windows / Delphi 7 - XE


// Panggil Unit IdHashMessageDigest;

Uses IdHashMessageDigest;

Function TForm1.Enkripsipassword(isipassword : String): String;
var pMD5: TIdHashMessageDigest5;
    hasil : String;
begin
  pMD5 := TIdHashMessageDigest5.Create;
  Result := '';
  try
       hasil := LowerCase(pMD5.HashStringAsHex(isipassword));
  finally
       pMD5.Free;
  end;
  Result := hasil;
end;


// cara menggunakan
procedure TForm1.Button1Click(Sender: TObject);
begin
     Edit1.Text := Enkripsipassword('1234');
end;


Membuat dialog pertanyaan singkat / Tool / Windows / Delphi 7 - XE


function Pertanyaanku(isi:String):word;
Begin
    Application.RestoreTopMosts;
    if MessageDlg(isi, mtConfirmation, [mbYes, mbNo],0) = mrYes Then
    begin
         Result := mryes;
    end else
    begin
         Result := mrNo;
    end;
    Application.RestoreTopMosts;
end;