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

Drajwer

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

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...

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

Szczerze ja tez wole application.messagebox();

A ja za długo siedziałem w API i teraz ciągle pisze MessageBox();

a ja wole OK (ale skorzystam)

Fajne stary przyda mi się napewno

Ej to jest nawet fajne!

no nie wiem ja tam wole Application.MessageBox ;]