001.
002.
003.
004.
005.
006. 
007.
008.
009.
010. 
011.
012. 
013.
014.
015.
016.
017. 
018.
019.  
020.    
021.    
022.    
023. 
024.    
025.    
026.    
027.    
028.    
029.    
030.    
031. 
032.    
033.    
034.      
035.
036. 
037.unit CustomMessageDlgDemoUnit;
038. 
039.interface
040. 
041.uses
042.  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
043.  Dialogs, StdCtrls, ComCtrls;
044. 
045.type
046.  TfrmCustomMessageDlg = class(TForm)
047.    btnStandard: TButton;
048.    btnIndonesian: TButton;
049.    btnContextSave: TButton;
050.    mmoLegend: TMemo;
051.    stbMain: TStatusBar;
052.    btnContextPrint: TButton;
053.    procedure btnStandardClick(Sender: TObject);
054.    procedure btnIndonesianClick(Sender: TObject);
055.    procedure btnContextSaveClick(Sender: TObject);
056.    procedure btnContextPrintClick(Sender: TObject);
057.  private
058.    
059.    procedure ReplaceResourceString(RStringRec: PResStringRec; AString: PChar);
060.    procedure SetCustomMessageStandard;
061.    procedure SetCustomMessageIndonesian;
062.    procedure SetCustomMessageContextSave;
063.    procedure SetCustomMessageContextPrint;
064.  public
065.    
066.  end;
067. 
068.var
069.  frmCustomMessageDlg: TfrmCustomMessageDlg;
070. 
071.implementation
072. 
073.{$R *.dfm}
074. 
075.uses
076.  Consts;
077. 
078.const
079.  
080.  _SMsgDlgWarning = 'Warning';
081.  _SMsgDlgError = 'Error';
082.  _SMsgDlgInformation = 'Information';
083.  _SMsgDlgConfirm = 'Confirm';
084.  _SMsgDlgYes = '&Yes';
085.  _SMsgDlgNo = '&No';
086.  _SMsgDlgOK = 'OK';
087.  _SMsgDlgCancel = 'Cancel';
088.  _SMsgDlgHelp = '&Help';
089.  _SMsgDlgHelpNone = 'No help available';
090.  _SMsgDlgHelpHelp = 'Help';
091.  _SMsgDlgAbort = '&Abort';
092.  _SMsgDlgRetry = '&Retry';
093.  _SMsgDlgIgnore = '&Ignore';
094.  _SMsgDlgAll = '&All';
095.  _SMsgDlgNoToAll = 'N&o to All';
096.  _SMsgDlgYesToAll = 'Yes to &All';
097. 
098.  
099.  _SMsgDlgWarningIndonesian = 'Peringatan';
100.  _SMsgDlgErrorIndonesian = 'Kesalahan';
101.  _SMsgDlgInformationIndonesian = 'Informasi';
102.  _SMsgDlgConfirmIndonesian = 'Konfirmasi';
103.  _SMsgDlgYesIndonesian = '&Ya';
104.  _SMsgDlgNoIndonesian = '&Tidak';
105.  _SMsgDlgOKIndonesian = 'OK';
106.  _SMsgDlgCancelIndonesian = 'Batal';
107.  _SMsgDlgHelpIndonesian = '&Panduan';
108.  _SMsgDlgHelpNoneIndonesian = 'Panduan tidak tersedia';
109.  _SMsgDlgHelpHelpIndonesian = 'Panduan';
110.  _SMsgDlgAbortIndonesian = '&Batal';
111.  _SMsgDlgRetryIndonesian = '&Ulang';
112.  _SMsgDlgIgnoreIndonesian = 'A&cuh';
113.  _SMsgDlgAllIndonesian = '&Semua';
114.  _SMsgDlgNoToAllIndonesian = 'T&idak untuk Semua';
115.  _SMsgDlgYesToAllIndonesian = 'Ya untuk S&emua';
116. 
117.  
118.  
119.  _SMsgDlgWarningContextPrint = 'Peringatan';
120.  _SMsgDlgErrorContextPrint = 'Kesalahan';
121.  _SMsgDlgInformationContextPrint = 'Informasi';
122.  _SMsgDlgConfirmContextPrint = 'Konfirmasi Tujuan Pencetakan';
123.  _SMsgDlgYesContextPrint = '&Printer';
124.  _SMsgDlgNoContextPrint = 'Dokumen PD&F Lebar Yak';
125.  _SMsgDlgOKContextPrint = '&Layar';
126.  _SMsgDlgCancelContextPrint = 'Batal';
127.  _SMsgDlgHelpContextPrint = '&Panduan';
128.  _SMsgDlgHelpNoneContextPrint = 'Panduan tidak tersedia';
129.  _SMsgDlgHelpHelpContextPrint = 'Panduan';
130.  _SMsgDlgAbortContextPrint = '&Batal';
131.  _SMsgDlgRetryContextPrint = '&Ulang';
132.  _SMsgDlgIgnoreContextPrint = 'A&cuh';
133.  _SMsgDlgAllContextPrint = '&Semua';
134.  _SMsgDlgNoToAllContextPrint = 'T&idak untuk Semua';
135.  _SMsgDlgYesToAllContextPrint = 'Ya untuk S&emua';
136. 
137.  
138.  
139.  _SMsgDlgWarningContextSave = 'Peringatan';
140.  _SMsgDlgErrorContextSave = 'Kesalahan';
141.  _SMsgDlgInformationContextSave = 'Informasi';
142.  _SMsgDlgConfirmContextSave = 'Konfirmasi Penyimpanan';
143.  _SMsgDlgYesContextSave = '&Simpan';
144.  _SMsgDlgNoContextSave = '&Lanjut Saja';
145.  _SMsgDlgOKContextSave = 'OK';
146.  _SMsgDlgCancelContextSave = 'Batal';
147.  _SMsgDlgHelpContextSave = '&Panduan';
148.  _SMsgDlgHelpNoneContextSave = 'Panduan tidak tersedia';
149.  _SMsgDlgHelpHelpContextSave = 'Panduan';
150.  _SMsgDlgAbortContextSave = '&Batal';
151.  _SMsgDlgRetryContextSave = '&Ulang';
152.  _SMsgDlgIgnoreContextSave = 'A&cuh';
153.  _SMsgDlgAllContextSave = '&Semua';
154.  _SMsgDlgNoToAllContextSave = 'T&idak untuk Semua';
155.  _SMsgDlgYesToAllContextSave = 'Ya untuk S&emua';
156. 
157.procedure TfrmCustomMessageDlg.btnContextPrintClick(Sender: TObject);
158.begin
159.  SetCustomMessageContextPrint;
160.end;
161. 
162.procedure TfrmCustomMessageDlg.btnContextSaveClick(Sender: TObject);
163.begin
164.  SetCustomMessageContextSave;
165.end;
166. 
167.procedure TfrmCustomMessageDlg.btnIndonesianClick(Sender: TObject);
168.begin
169.  SetCustomMessageIndonesian;
170.end;
171. 
172.procedure TfrmCustomMessageDlg.btnStandardClick(Sender: TObject);
173.begin
174.  SetCustomMessageStandard;
175.end;
176. 
177.
178.procedure TfrmCustomMessageDlg.ReplaceResourceString(RStringRec: PResStringRec;
179.  AString: PChar);
180.var
181.  OldProtect: Cardinal;
182.begin
183.  if RStringRec = nil then Exit;
184.  if VirtualProtectEx(GetCurrentProcess, RStringRec, SizeOf(RStringRec^), PAGE_EXECUTE_READWRITE, OldProtect) then
185.  begin
186.    RStringRec^.Identifier := Integer(AString);
187.    VirtualProtectEx(GetCurrentProcess, RStringRec, SizeOf(RStringRec^), OldProtect, @OldProtect);
188.  end;
189.end;
190. 
191.procedure TfrmCustomMessageDlg.SetCustomMessageContextPrint;
192.begin
193.  
194.  
195.  
196.  
197.  
198.  ReplaceResourceString(@SMsgDlgConfirm, _SMsgDlgConfirmContextPrint);
199.  ReplaceResourceString(@SMsgDlgYes, _SMsgDlgYesContextPrint);
200.  ReplaceResourceString(@SMsgDlgNo, _SMsgDlgNoContextPrint);
201.  ReplaceResourceString(@SMsgDlgOK, _SMsgDlgOKContextPrint);
202. 
203.  
204.  
205.  
206.  
207.  case MessageDlg('Tentukan tujuan pencetakan dokumen ?', mtConfirmation, [mbOK, mbYes, mbNo], 0) of
208.    mrOK : ShowMessage('Dokumen ditayangkan ke layar');
209.    mrYes : ShowMessage('Dokumen dicetak ke printer');
210.    mrNo : ShowMessage('Dokumen disimpan dalam format .PDF');
211.  end;
212.end;
213. 
214.procedure TfrmCustomMessageDlg.SetCustomMessageContextSave;
215.begin
216.  
217.  
218.  ReplaceResourceString(@SMsgDlgConfirm, _SMsgDlgConfirmContextSave);
219.  ReplaceResourceString(@SMsgDlgYes, _SMsgDlgYesContextSave);
220.  ReplaceResourceString(@SMsgDlgNo, _SMsgDlgNoContextSave);
221.  ReplaceResourceString(@SMsgDlgCancel, _SMsgDlgCancelContextSave);
222. 
223.  MessageDlg('Anda Yakin akan menyimpan dokumen ini ?', mtConfirmation, mbYesNoCancel, 0);
224.end;
225. 
226.procedure TfrmCustomMessageDlg.SetCustomMessageIndonesian;
227.begin
228.  
229.  ReplaceResourceString(@SMsgDlgWarning, _SMsgDlgWarningIndonesian);
230.  ReplaceResourceString(@SMsgDlgError, _SMsgDlgErrorIndonesian);
231.  ReplaceResourceString(@SMsgDlgInformation, _SMsgDlgInformationIndonesian);
232.  ReplaceResourceString(@SMsgDlgConfirm, _SMsgDlgConfirmIndonesian);
233.  ReplaceResourceString(@SMsgDlgYes, _SMsgDlgYesIndonesian);
234.  ReplaceResourceString(@SMsgDlgNo, _SMsgDlgNoIndonesian);
235.  ReplaceResourceString(@SMsgDlgOK, _SMsgDlgOKIndonesian);
236.  ReplaceResourceString(@SMsgDlgCancel, _SMsgDlgCancelIndonesian);
237.  ReplaceResourceString(@SMsgDlgHelp, _SMsgDlgHelpIndonesian);
238.  ReplaceResourceString(@SMsgDlgHelpNone, _SMsgDlgHelpNoneIndonesian);
239.  ReplaceResourceString(@SMsgDlgHelpHelp, _SMsgDlgHelpHelpIndonesian);
240.  ReplaceResourceString(@SMsgDlgAbort, _SMsgDlgAbortIndonesian);
241.  ReplaceResourceString(@SMsgDlgRetry, _SMsgDlgRetryIndonesian);
242.  ReplaceResourceString(@SMsgDlgIgnore, _SMsgDlgIgnoreIndonesian);
243.  ReplaceResourceString(@SMsgDlgAll, _SMsgDlgAllIndonesian);
244.  ReplaceResourceString(@SMsgDlgNoToAll, _SMsgDlgNoToAllIndonesian);
245.  ReplaceResourceString(@SMsgDlgYesToAll, _SMsgDlgYesToAllIndonesian);
246. 
247.  MessageDlg('Anda Yakin akan menyimpan dokumen ini ?', mtConfirmation, mbYesNoCancel, 0);
248.end;
249. 
250.procedure TfrmCustomMessageDlg.SetCustomMessageStandard;
251.begin
252.  
253.  ReplaceResourceString(@SMsgDlgWarning, _SMsgDlgWarning);
254.  ReplaceResourceString(@SMsgDlgError, _SMsgDlgError);
255.  ReplaceResourceString(@SMsgDlgInformation, _SMsgDlgInformation);
256.  ReplaceResourceString(@SMsgDlgConfirm, _SMsgDlgConfirm);
257.  ReplaceResourceString(@SMsgDlgYes, _SMsgDlgYes);
258.  ReplaceResourceString(@SMsgDlgNo, _SMsgDlgNo);
259.  ReplaceResourceString(@SMsgDlgOK, _SMsgDlgOK);
260.  ReplaceResourceString(@SMsgDlgCancel, _SMsgDlgCancel);
261.  ReplaceResourceString(@SMsgDlgHelp, _SMsgDlgHelp);
262.  ReplaceResourceString(@SMsgDlgHelpNone, _SMsgDlgHelpNone);
263.  ReplaceResourceString(@SMsgDlgHelpHelp, _SMsgDlgHelpHelp);
264.  ReplaceResourceString(@SMsgDlgAbort, _SMsgDlgAbort);
265.  ReplaceResourceString(@SMsgDlgRetry, _SMsgDlgRetry);
266.  ReplaceResourceString(@SMsgDlgIgnore, _SMsgDlgIgnore);
267.  ReplaceResourceString(@SMsgDlgAll, _SMsgDlgAll);
268.  ReplaceResourceString(@SMsgDlgNoToAll, _SMsgDlgNoToAll);
269.  ReplaceResourceString(@SMsgDlgYesToAll, _SMsgDlgYesToAll);
270. 
271.  MessageDlg('Anda Yakin akan menyimpan dokumen ini ?', mtConfirmation, mbYesNoCancel, 0);
272.end;
273. 
274.end.