Du gehst nicht über den Index des Array aus Language sondern über den Locale identifier von hier
Language Identifier Constants and Strings
Delphi-Quellcode:
// DE = 1031 = $0407
var
LCID:Integer;
begin
LCID := Languages.indexOf(SysLocale.DefaultLCID);
Showmessage( IntToStr(Languages.LocaleID[LCID])
+ '[' +IntToHex(Languages.LocaleID[LCID],4) +']'
+ '-' + Languages.LocaleName[LCID]
+ '-' + Languages.Name[LCID]);
end;
Danke erst mal für die Antwort!
Das verblüfft mich jetzt. Ich hatte soeben diese Idee:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i: integer; s,s1,s2: String;
begin
//i := Languages.IndexOf(SysLocale.DefaultLCID);
s := '';
for i := 0 to Languages.Count-1 do
begin
s1 := 'Index: '+ IntToStr(i);
s2 := Languages.Name[i];
s := s1 + ' ' + s2;
Memo1.Lines.Add(s);
s := '';
end;
//Label2.Caption := IntToStr(i);
//ShowMessage(Languages.Name[i]);
end;
Damit erhalte ich je Index eine Sprache. Mit Ihrer Methode erhalte ich jedoch 1031[0407]-German(Germany)
Ich suche das, um die Systemsprache zu ermitteln, um in einer eigenen Anwendung davon abhängig die Bedienersprache einzustellen.
Daher suchte ich eine Tabelle mit den Indizes.
Damit ich später abhängig von diesem Index die richtige Sprache in meiner Anwendung eistellen kann.
.