Einzelnen Beitrag anzeigen

Benutzerbild von chri_ri
chri_ri

Registriert seit: 16. Okt 2007
Ort: Markkleeberg
37 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Komponenten in MessageDlg

  Alt 29. Okt 2008, 00:41
Also wie es aussieht habe ich jetzt doch eine Lösung für mein Anliegen gefunden.

Es ist zwar nicht ganz so, wie ich es mir zunächst gedacht habe aber eigentlich kommt es auf die gleiche Endlösung heraus.

Fündig bin ich unter folgendem Link geworden: http://www.delphi3000.com/articles/article_1678.asp?SK=


Für alle die speziell mein Anliegen ebenfalls interessiert:

Die Funktion:
Delphi-Quellcode:
function LanguageDlg(ATitle: String): String;
var
  AMsgDialog: TForm;
  AComboBox: TComboBox;
begin
  AMsgDialog := CreateMessageDialog(' ', mtCustom, [mbOk]);
  AComboBox := TComboBox.Create(AMsgDialog);
  with AMsgDialog do
  try
    Caption := ATitle;
    Height := 108;
    With AComboBox do
    begin
      Parent := AMsgDialog;
      Top := 8;
      Left := 8;
      Items.Add('Deutsch');
      Items.Add('English');
      ItemIndex := 0;
    end;
    ShowModal;
    result := LowerCase(Copy(AComboBox.Items.Strings[AComboBox.ItemIndex], 1, 2));
  finally
    AComboBox.Free;
    Free;
  end;
end;
Ein Beispielaufruf:
ShowMessage(LanguageDlg('Sprache / Language')); Hinweis: Die Funktion erwartet als einzigen Parameter den Titel für den Message-Dialog als String und gibt ebenfalls als String die ersten beiden Buchstaben der ausgewählten Sprache in Kleinschreibung zurück (z.B.: English = en).


Kommentar: Speziell meine Lösung ist an einigen Ecken ein wenig "unschön" gelöst und könnte noch ein wenig optimiert und erweitert werden.


//EDIT: Habe Fehler beim Beispielaufruf nachträglich korrigiert.



mfg. chri_ri
  Mit Zitat antworten Zitat