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.

Diterbitkan oleh wisnuwidiarta

Hi, my name is Wisnu Widiarta. I am a movie lover and love traveling especially camping and doing outdoor activities. Coding and problem solving in general are things I love as well.

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 )

Foto Facebook

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

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogger menyukai ini: