Czy można zdefiniować opis buttonów w MessageDlg?

0

Czy w MessageDlg da się zastąpić standardowe teksty (opis okienka 'Confirm' oraz opisy buttonów 'Yes', 'No') własnymi? Jeśli tak, to jak to się robi?

0

A poszukać się chce ?
Bodajże w pliku "const.pas" jest to zdefiniowane.

0

Inna metoda to używać MessageBoxów, te zawsze będą mieć przyciski w języku systemu, a i ich wygląd będzie zależał od tego jakie kompozycje są w systemie. Jeżeli jednak wolisz MessageDlg to mozna jak pisał poprzednik korzystać z przetłumaczonego consts.pas albo z CreateMessageDialog.

procedure TMainForm.CBXOnClick(Sender : TObject);
begin
  with Sender as TCheckBox do
  begin
    if Checked then
    begin
      ShowMessage('Zaznaczyłeś');
    end
    else
    begin
      ShowMessage('Odznaczyłeś');
    end;
  end;
end;

procedure TMainForm.ShowMsgDlgButtonClick(Sender: TObject);
var
  Dlg : TForm;
  CBX : TCheckBox;
begin
  Dlg := CreateMessageDialog('Czy na pewno chcesz zamknąć program?',
  mtConfirmation, [mbYes, mbNo]);
  Dlg.Caption := Application.Title;
  Dlg.BorderIcons := [];
  Dlg.Height := 130;
  Dlg.ActiveControl := TButton(Dlg.FindComponent('Yes'));
  TImage(Dlg.FindComponent('Image')).Picture.Assign(Application.Icon);
  TButton(Dlg.FindComponent('Yes')).Caption := 'Tak';
  TButton(Dlg.FindComponent('No')).Caption := 'Nie';
  TButton(Dlg.FindComponent('Yes')).Top := 70;
  TButton(Dlg.FindComponent('No')).Top := 70;
  CBX := TCheckBox.Create(Dlg);
  CBX.Parent := Dlg;
  CBX.Caption := 'Zawsze pytaj';
  CBX.Left := (Dlg.Width - CBX.Width) div 2;
  CBX.Top := 40;
  CBX.Checked := False;
  CBX.OnClick := CBXOnClick;
  Dlg.ShowModal;

  case Dlg.ModalResult of
    mrYes : begin
      Caption := 'Tak';
    end;
    mrNo : begin
      Caption := 'NIE';
    end;
  end;

  if CBX.Checked then
  begin
    Caption := Caption + #32 + '- Zaznaczony';
  end
  else
  begin
    Caption := Caption + #32 + '- Odznaczony';
  end;
end;
0

Dziękuję. Mniej więcej sobie powinienem teraz poradzić.
(Z tym nieużywaniem prefiksów też postaram się pamiętać).

1 użytkowników online, w tym zalogowanych: 0, gości: 1