Custom MessageDlg: Centered Message


Salah seorang pakar Delphi sahabat saya menuliskan di blognya tentang custom MessageDlg, dengan pesan teksnya rata tengah atau di atur alignmentnya. Approachnya adalah dengan menggunakan CodeRedirect.

Silakan detailnya dibaca di sini.

Kebetulan, aku juga pernah nulis di blog ini tentang custom MessageDlg dengan facade pattern di sini.

Nah dengan cara yang hampir sama, goal yang ingin dicapai oleh sahabat saya tersebut juga bisa dilakukan dengan modifikasi dengan menambahkan parameter Alignment. Coding lengkapnya sebagai berikut:


unit classIndonesianDialog;

{ Wisnu Widiarta – http://wishknew.multiply.com }

interface

uses
Dialogs, Forms, StdCtrls, SysUtils, Classes;

type
TIndonesianDialog = class(TObject)
public
class function MessageDlg(const Msg: string; DlgType: TMsgDlgType;
Buttons: TMsgDlgButtons; alignment: TAlignment = taLeftJustify): Word;
class function ShowError(Msg:String; alignment: TAlignment = taLeftJustify):Word;
end;

implementation

{ TIndonesianDialog }

class function TIndonesianDialog.MessageDlg(const Msg: string;
DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; alignment: TAlignment = taLeftJustify): Word;
var
aForm:TForm;
i:integer;
begin
aForm := CreateMessageDialog(Msg, DlgType, Buttons);
for i := 0 to aForm.ComponentCount – 1 do
begin
if (aForm.Components[i] is TLabel) then
(aForm.Components[i] as TLabel).Alignment := alignment
else if (aForm.Components[i] is TButton) then

//<… dihapus (sama dengan class terdahulu)…>

end;

class function TIndonesianDialog.ShowError(Msg: String; alignment: TAlignment = taLeftJustify): Word;
begin
Result := Self.MessageDlg(Msg, mtError, [mbOk], alignment);
end;

end.

Untuk testing:

procedure TForm1.FormCreate(Sender: TObject);
begin
TIndonesianDialog.ShowError(‘Defaultnya rata kiri ‘ + #13#10 +
‘Iya kan rata kiri?’);

TIndonesianDialog.ShowError(‘Kalau yang ini harusnya rata tengah’ + #13#10 +
‘Iya kan rata tengah?’, taCenter);

TIndonesianDialog.ShowError(‘Kalau yang ini mestinya rata kanan’ + #13#10 +
‘Iya kan rata kanan?’, taRightJustify);
end;

Hasilnya:


Semoga bermanfaat. Kalau ada pertanyaan just let me know.

Iklan

Posted on Agustus 20, 2008, in Pemrograman, Tips, Ulasan and tagged . Bookmark the permalink. Tinggalkan komentar.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: