![]() |
TTreeview - Nur Oberknoten finden und übersetzen...
Hallo Wissende,
ich weiss, dass es in diesem Forum ewig viele Threads zum leidigen Thema Treeview gibt, aber ich konnte leider nicht das passende finden. Ich muss die Oberknoten, meines Treeview übersetzen, wenn der User die Sprache ändert. Die Childs der Knoten sollen davon unberührt bleiben. Ich konnte leider nichts, auch in der Hilfe nicht, finden, was mir das ermöglicht. Als Beispiel: -a -aa -b -c -d In diesem Fall sollen immer nur a,b,c und d übersetzt werden. Ich habe es mit GetNext und GetNextsibling versucht, aber ich bin immer irgendwie auch bei -aa gelandet oder aber ich erhielt immer den selben Oberknoten, obwohl ich keine Childs wollte. Wie kann ich als relativ statisch dieses Problem lösen? |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
GetNextSibling ist schon korrekt - von daher: hast du den Code mit GetNextSibling noch zur Hand? Kannst du ihn mal posten, weil es sollte nur eine Kleinigkeit sein.
Als dreckigen Hack kannst du sonst bei jedem Knoten abfragen, ob Level = 0 ist, und nur solche übersetzen. Aber poste mal den Code... |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Ich habe es testhalber nun so hinbekommen...Nicht schön, aber es funktioniert! Eigentlich habe ich nur 6 Oberknoten...Könnte man das vielleicht in ner Schleife machen!?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var myNode : TTreeNode; begin myNode := TreeView1.Items.GetFirstNode; ShowMessage(myNode.Text); myNode := myNode.getNextSibling; ShowMessage(myNode.Text); myNode := myNode.getNextSibling; ShowMessage(myNode.Text); myNode := myNode.getNextSibling; ShowMessage(myNode.Text); end; |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Zitat:
Delphi-Quellcode:
(ungetestet, sollte aber OK sein)
var
myNode : TTreeNode; begin myNode := TreeView1.Items.GetFirstNode; while myNode <> nil do begin ShowMessage(myNode.Text) myNode := myNode.GetNextSibling; end; end; Ciao, Ralf |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Danke für den Code, aber wie Du selbst sehen wirst, macht es mit der Schleife nicht so wirklich Sinn. Es sind ja nur 6 Knoten.
Hier mal ein Ausschnitt aus meinem Code. Die Variablen sind voher befüllt worden.
Delphi-Quellcode:
if obj_list <> nil then
begin myNode := obj_list.TreeView1.Items.GetFirstNode; myNode.Text := str_tv_cams; myNode := myNode.getNextSibling; myNode.Text := str_tv_camd; myNode := myNode.getNextSibling; myNode.Text := str_tv_logo; myNode := myNode.getNextSibling; myNode.Text := str_tv_back; myNode := myNode.getNextSibling; myNode.Text := str_tv_fret; myNode := myNode.getNextSibling; myNode.Text := str_tv_objc; myNode := myNode.getNextSibling; myNode.Text := str_tv_legn; end; |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Hallo Tom,
ich würde den Vorschlag von Ralf aufgreifen. Die Umstellung der Lokalisierung zur Laufzeit würde ich allerdings nicht von der Reihenfolge der Knoten, sondern von einer Markierung abhängig machen:
Delphi-Quellcode:
Grüße vom marabu
var
node: TTreeNode; begin node := TreeView.Items.GetFirstNode; while Assigned(node) do begin node.Text := GetLocalNodeText(Integer(node.Data)) node := node.GetNextSibling; end; end; |
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Sorry, dass verstehe ich nicht ganz, denn ich will doch übersetzen, auch wenn der Knoten NICHT markiert ist. Selbst wenn ich den Code so übernehmen würde, stellt sich mir die Frage, wie ich darin die Übersetzung einpflegen soll, die ja relativ statisch erfolgt...
|
Re: TTreeview - Nur Oberknoten finden und übersetzen...
Jede Komponente, deren Beschriftung bei einer Lokalisierung geändert werden soll, erhält eine "Markierung" - einen Schlüssel, über den die zugehörige Übersetzung definiert werden kann. Beim TreeNode würde ich diese "Markierung" in der dafür vorgesehenen Eigenschaft Data unterbringen.
Freundliche Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz