AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Gnu Gettext verändert den Index meine Combofeldes
Thema durchsuchen
Ansicht
Themen-Optionen

Gnu Gettext verändert den Index meine Combofeldes

Ein Thema von DelphiManiac · begonnen am 12. Feb 2007 · letzter Beitrag vom 13. Feb 2007
Antwort Antwort
Seite 1 von 2  1 2      
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 15:40
Hallo,

ich nutze jetzt seit einigen Tagen die Komponente Gettext für die Übersetzung meines Programmes in Englisch.
Die ist an sich echt Klasse, vorallendingen, dass parsen der Dateien und dann das Pflegen der Po-Datei.

Mein Problem hier ist folgendes (evtl. ein Problem, dass andere auch schon hatten):

Ich habe z.B. ein Combofeld mit 2 Strings:

1. String ='manuell'
2. String ='digital'

diese Strings lasse ich jetzt per
Delphi-Quellcode:
UseLanguage('en');
TranslateComponent(self);
übersetzten.

Nun hat aber leider immer nach der Übersetzung der 1. String den Focus, und nicht der der zuletzt ausgewählt war

Also meine Frage an euch, wie sage ich Gettext, dass er auch bitte die Auswahl unberührt lassen soll?

Danke schonmal..
Gruß
DelphiManiac
  Mit Zitat antworten Zitat
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, 15: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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:02
Hallo,

ich will das gettext demnächst auch mal probieren.
Deshalb die Frage, wie kann es sein, dass der selektierte Eintrag verändert wird ?

Das TranslateComponent sollte doch als "erstes" im Form aufgerufen werden
(Anfang von FormCreate),
dann wird der zuletzt gewählte (gespeichert in DB oder so)
per Code selektiert ? oder habe ich das falsch verstanden.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:04
Zitat von hoika:
Das TranslateComponent sollte doch als "erstes" im Form aufgerufen werden
Was ist, wenn du die Sprache zur Runtime änderst?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#5

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:08
Hi,

ja natürlich könnte ich mir alle Indizes raussuchen, mir die merken und wieder zurückschreiben,
aber ehrlich gesagt, etwas müßig ist das schon
Vielleicht gibt es da noch eine andere Möglichkeit,... (speziell für Gnu Gettext)

Danke
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#6

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:09
Das Problem, habe ich ja nur, wenn ich die Sprache zur Laufzeit ändere,

dann sollte man ja ReTranslate dafür nehmen, habe aber TranslateComponent genommen, evtl. behebt das das Problem,
probiere es mal aus und melde mich dann..
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#7

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 16:44
Komischerweise gibt es die Funktion ReTranslate bei meiner Gettext Version gar nicht (nicht mehr??).

Nutzt jemand Gettext und kann mir sagen, wie ich zur Laufzeit die Sprache ändere???

Danke
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 17:08
RetranslateComponent


Zitat von DelphiManiac:
Hi,

ja natürlich könnte ich mir alle Indizes raussuchen, mir die merken und wieder zurückschreiben,
aber ehrlich gesagt, etwas müßig ist das schon
Vielleicht gibt es da noch eine andere Möglichkeit,... (speziell für Gnu Gettext)

Danke
Ich habe in meinem ersten Beitrag hier gezeigt, wie man das ganz einfach in eine Funktion auslagert!
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#9

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 17:23
Ja sorry,

meine ja ReTranslateComponent...

aber genau diese Funktion gibt es in meinem gettext nicht
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

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

Re: Gnu Gettext verändert den Index meine Combofeldes

  Alt 12. Feb 2007, 17:34
Also ich besitzte diese Funktion noch, und das ist ~ 1 Mon her
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz