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;
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;
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;
for i := 0 to ComponentCount-1 do
begin
if( Components[ i ] is TEdit )then
begin
(Components[ i ] as TEdit).clear;
end;
end;
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;
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
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;
// 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;
// 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;
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;