Du kannst bevor du "TranslateComponents" ausrufst den Index speichern, und denn danach wieder setzen.
[Edit]Wenn du es ganz dynamisch haben willst:
- Schreibe eine Funktion, welche als Parameter die gleichen hat, wie "TranslateComponents"
- Erstelle ein dynamisches Array, und setzte schreibe darein, alle Indexe der TComboBoxen
- Schreibe in diese Funktion den Aufruf, der "Stammfunktion"
- Schreibe jetzt alle Indexe zurück
Delphi-Quellcode:
type
TData = record
index : Integer;
pointer : PComboBox;
end;
procedure TranslateComponentEx(form : TForm);
var
i : Integer;
buffer : array of TData;
begin
for i := 0 to form.ComponentCount do
begin
if form.Components[i] is TComboBox then
begin
SetLength(buffer, Length(buffer) + 1);
buffer[High(buffer)].index := (form.Components[i] as TComboBox).ItemIndex;
buffer[High(buffer)].pointer := (form.Components[i] as TComboBox);
end;
end;
TranslateComponent(form);
for i := 0 to Length(buffer) do
begin
buffer[i].pointer^.ItemIndex := buffer[i].index;
end;
end;
Ich hoffe mal es geht so (is nur getippt)
[/edit]