Einzelnen Beitrag anzeigen

Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#6

Re: MessageDlg -> Die Buttons selber beschriften ?

  Alt 21. Dez 2007, 14:00
Hi

den folgenden Code hab' ich etwas modifiziert und den gibt es hier in der DP; finde ihn aber grad nicht:

Delphi-Quellcode:
function ConfBox(text: string): integer;
var
  f: TForm;
begin
  f := CreateMessageDialog(text, mtConfirmation, [mbYes, mbNo, mbCancel]);
    try
      f.Caption := 'Titeltext';
      (f.FindComponent('Cancel') as TButton).Caption := 'Cancel ersetzen';
      (f.FindComponent('Yes') as TButton).Caption := 'Yes ersetzen';
      (f.FindComponent('No') as TButton).Caption := 'No ersetzen';
      result := f.ShowModal;
    finally
      f.Free;
    end;
end;
Die Funktion liefert dir die selben Rückgabewerte wie die normale MessageDlg-Boxen. Allerdings würde ich die Funktion nur für verschiedene Sprachen nutzen (bei mir, weil ich die Delphi 7 Personal Version von Borland/Poland hab' und diese englische Dialoge liefert, kann ich die zur LAufzeit abändern). Bsp.:
Delphi-Quellcode:
function ConfBox(language: integer; text: string): integer;
var
  f: TForm;
begin
  f := CreateMessageDialog(text, mtConfirmation, [mbYes, mbNo, mbCancel]);
    try
      case language of
        0: begin
             f.Caption := 'Bestätigen';
             (f.FindComponent('Cancel') as TButton).Caption := 'Abbrechen';
             (f.FindComponent('Yes') as TButton).Caption := 'Ja';
             (f.FindComponent('No') as TButton).Caption := 'Nein';
           end;
        1: begin
             f.Caption := 'Confirmatione'; // <-- nur gibberish ^^
            (f.FindComponent('Cancel') as TButton).Caption := 'Aborto';
            (f.FindComponent('Yes') as TButton).Caption := 'Si';
            (f.FindComponent('No') as TButton).Caption := 'No';
           end;
        2: begin
             f.Caption := 'De la Confirmation';
            (f.FindComponent('Cancel') as TButton).Caption := 'Aborté';
            (f.FindComponent('Yes') as TButton).Caption := 'Oui';
            (f.FindComponent('No') as TButton).Caption := 'Non';
           end;
        end;
      result := f.ShowModal;
    finally
      f.Free;
    end;
end;
Und evtl. müsstest du auch noch die Position und Größe der Buttons anpassen. Also alles in alle mit Vorsicht zu genießen.

Gruß

Calculon
--
  Mit Zitat antworten Zitat