Message Dialog Bahasa Indonesia Delphi

Posted by

Membuat Message Dialog Bahasa Indonesia Delphi

Berawal dari membuat program dengan bahasa Indonesia, waktu mau buat pesan dialog munculnya bahasa Inggris karena asli bawaannya Delphi. Kan lucu aja gitu semua tampilan pake bahasa Indonesia, dan tiba-tiba muncul pesan dialog konfirmasi pake bahasa Inggris... Hehehe.. :D

Caranya cukup mudah sih, kita tinggal buat unit seperti di bawah.
Source code berikut ane kutip dari blognya mas Bayu Prasetio dan ane buat unit sendiri.
Karena sering ane pake waktu buat aplikasi yang bahasa Indonesia jadi biar gak lupa ane tulis diblog.

Unit uMessageDlgIndonesia

unit uMessageDlgIndonesia;

interface

uses
  Consts, Windows;

const
  _NewSMsgDlgWarning = 'Peringatan';
  _NewSMsgDlgError = 'Kesalahan';
  _NewSMsgDlgInformation = 'Informasi';
  _NewSMsgDlgConfirm = 'Konfirmasi';
  _NewSMsgDlgYes = '&Ya';
  _NewSMsgDlgNo = '&Tidak';
  _NewSMsgDlgOK = 'OK';
  _NewSMsgDlgCancel = 'Batal';
  _NewSMsgDlgHelp = '&Panduan';
  _NewSMsgDlgHelpNone = 'Panduan tidak tersedia';
  _NewSMsgDlgHelpHelp = 'Panduan';
  _NewSMsgDlgAbort = '&Batal';
  _NewSMsgDlgRetry = '&Ulang';
  _NewSMsgDlgIgnore = 'A&cuh';
  _NewSMsgDlgAll = '&Semua';
  _NewSMsgDlgNoToAll = 'T&idak untuk Semua';
  _NewSMsgDlgYesToAll = 'Ya untuk S&emua';

implementation

procedure ReplaceResourceString(RStringRec: PResStringRec; AString: PChar);
var
  OldProtect: Cardinal;
begin
  if RStringRec = nil then Exit;
  if VirtualProtect(RStringRec, SizeOf(RStringRec^), PAGE_EXECUTE_READWRITE, OldProtect) then
  begin
    RStringRec^.Identifier := Integer(AString);
    VirtualProtect(RStringRec, SizeOf(RStringRec^), OldProtect, @OldProtect);
  end;
end;

initialization
  ReplaceResourceString(@SMsgDlgWarning, _NewSMsgDlgWarning);
  ReplaceResourceString(@SMsgDlgError, _NewSMsgDlgError);
  ReplaceResourceString(@SMsgDlgInformation, _NewSMsgDlgInformation);
  ReplaceResourceString(@SMsgDlgConfirm, _NewSMsgDlgConfirm);
  ReplaceResourceString(@SMsgDlgYes, _NewSMsgDlgYes);
  ReplaceResourceString(@SMsgDlgNo, _NewSMsgDlgNo);
  ReplaceResourceString(@SMsgDlgOK, _NewSMsgDlgOK);
  ReplaceResourceString(@SMsgDlgCancel, _NewSMsgDlgCancel);
  ReplaceResourceString(@SMsgDlgHelp, _NewSMsgDlgHelp);
  ReplaceResourceString(@SMsgDlgHelpNone, _NewSMsgDlgHelpNone);
  ReplaceResourceString(@SMsgDlgHelpHelp, _NewSMsgDlgHelpHelp);
  ReplaceResourceString(@SMsgDlgAbort, _NewSMsgDlgAbort);
  ReplaceResourceString(@SMsgDlgRetry, _NewSMsgDlgRetry);
  ReplaceResourceString(@SMsgDlgIgnore, _NewSMsgDlgIgnore);
  ReplaceResourceString(@SMsgDlgAll, _NewSMsgDlgAll);
  ReplaceResourceString(@SMsgDlgNoToAll, _NewSMsgDlgNoToAll);
  ReplaceResourceString(@SMsgDlgYesToAll, _NewSMsgDlgYesToAll);

end. 

Cara pakainya tinggal di tambahkan ke project ( Project > Add to Project... )
kemudian use unit ( File > Use Unit...)

Setelah unit ditambahkan, maka penggunaan MessageDlg otomatis berubah menjadi Bahasa Indonesia.
Jika menghendaki bahasa lain tinggal dirubah saja konstanta pada unit uMessageDlgIndonesia sesuai keinginan, dengan demikian kita bisa mengkustomise Message Dialog tanpa merubah unit bawaanya Delphi yaitu Dialogs.

Jika males buat nih ada contoh program + source codenya :D



Blog, Updated at: 1:28 PM

0 comments:

Post a Comment