Programowanie w języku Delphi » Gotowce

Jak zmienić właściwości captionów w messagedlg

Mówie wam jest to bardzo przydatne!! A co wam bede gadał macie funkcje:

function MyMessageDialog(const Msg: string; DlgType: TMsgDlgType; 
  Buttons: TMsgDlgButtons; Captions: array of string): Integer; 
var 
  aMsgDlg: TForm; 
  i: Integer; 
  dlgButton: TButton; 
  CaptionIndex: Integer; 
begin 
 
  aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons); 
  captionIndex := 0; 
 
  for i := 0 to aMsgDlg.ComponentCount - 1 do 
  begin 
 
    if (aMsgDlg.Components[i] is TButton) then 
    begin 
      dlgButton := TButton(aMsgDlg.Components[i]); 
      if CaptionIndex > High(Captions) then Break; 
 
      dlgButton.Caption := Captions[CaptionIndex]; 
      Inc(CaptionIndex); 
    end; 
  end; 
  Result := aMsgDlg.ShowModal; 
end; 

teraz macie przykład:

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=MyMessageDialog('Ile?', mtConfirmation, mbOKCancel, ['1', '2']);
case i of
mrok : ShowMessage('Kliknięto 1');
mrcancel : ShowMessage('Kliknięto 2');
end;
end;

proste nieprawdaż?

10 komentarzy

aric 2004-02-19 17:30

W Delphi 5 Standard Można było dowolnie ustawić sobie Caption dla MessageDlg. Dlaczego w Delphi 7 Personal zawsze jest ustawiane automatycznie na podstawie flag? I oczywiście po angielsku...

Rabbitsoft 2004-01-07 08:50

A ja najbardziej lubie <message.h> w gcc :P

You23 2003-03-22 11:54

Szczerze ja tez wole application.messagebox();

Duch^ 2003-01-07 19:40

a ja wole OK (ale skorzystam)

Radzio3 2002-12-27 18:42

Fajne stary przyda mi się napewno

werw0e 2002-12-25 13:21

Ej to jest nawet fajne!

werw0e 2002-12-22 14:36

no nie wiem ja tam wole Application.MessageBox ;]