Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:44
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]
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat