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