Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by marabu,
5. Dez 2005
Hallo Tom,
if Assigned(Node) and Assigned(Node.Data) then
TWinControl(Node.Data).SetFocus;
SetFocus ist eine Methode von TWinControl. Wenn du TImage-Komponenten selektieren willst, dann steht dir diese Methode im Ereignis OnChange() der TreeView nicht zur Verfügung. In meiner Testanwendung habe ich aus diesem Grund den Trick mit den untergelegten Panels verwendet. Du hast...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by marabu,
5. Dez 2005
Hallo Tom,
ich wollte dich nicht vom Weg abbringen, sondern habe nur beschrieben wie ich vorgehe, da ich die von dir verwendeten Komponenten nicht auf meiner Maschine installiert habe.
Hast du zum Testen mal deine Debugger-Optionen so eingestellt, dass bei Delphi-Exceptions angehalten wird? Du könntest so die Stellen lokalisieren, an denen Übles geschieht. Setze dann einfach einen...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by marabu,
4. Dez 2005
Hallo Tom,
mein Beispiel war auf Nachfahren von TWinControl ausgerichtet - kein Wunder, wenn es bei dir nicht funktioniert. Ich weiß zwar nicht wie du die Hervorhebung von Image und Label machen willst, wenn der entsprechende Knoten in der TreeView selektiert wird, aber ich habe mir ein Test-Szenario aufgebaut, bei dem jedes Control auf einem Panel liegt. Beim Selektieren des entsprechenden...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by marabu,
4. Dez 2005
Auf welcher Form dein Control liegt ist egal, da du ja den Zugriff immer qualifizieren kannst. Wenn du für deinen Ansatz über die name property der Controls keine gewichtige Motivation hast, dann ist eine direkte Referenz doch einfacher zu verwenden. Den Namen (oder ClassName, wenn kein Name existiert) des Control wirst du wohl weiter als Node.Text verwenden. Ich schlage dir nur vor zusätzlich...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by marabu,
4. Dez 2005
Hallo Tom,
wenn du beim Aufbauen der TreeView eine Referenz auf das jeweilige Control in der property Data des zugehörigen TTreeNode ablegst, dann kannst du im Ereignis OnChange() der TreeView das Control fokusieren:
procedure TDemoForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
begin
if Assigned(Node) then
TWinControl(Node.Data).SetFocus;
end;