AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Control per Procedure selektieren

Ein Thema von torud · begonnen am 4. Dez 2005 · letzter Beitrag vom 5. Dez 2005
Antwort Antwort
Seite 2 von 2     12   
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#11

Re: Ein Control per Procedure selektieren

  Alt 5. Dez 2005, 12:32
Zitat von marabu:
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.
Kein Problem. Ich habe es nicht so aufgefasst.

Zitat von marabu:
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 BreakPoint und inspiziere die beteiligten Variablen, dann solltest du recht schnell erkennen, wo dein Fehler im Code steckt.
Ähm ja habe ich eigentlich immer. Also sobald irgendwas eine Exception aufwirft, stopt alles und ich erhalte eine Fehlermeldeung, welche ich in den seltensten Fällen zu deuten weiss.

Zitat von marabu:
Vielleicht solltest du auch das Ergebnis von FindComponent() noch nach TWinControl casten, bevor du es in der Data property des TreeNode verankerst.
Also wenn ich ehrlich sein soll, weiss ich nicht, was Du damit meinst, bzw. wie man das machen müsste, um es zu "casten". Ich habe derzeit in der Treeview den Code dahingehend geändert, dass ich noch prüfe, ob denn überhaupt etwas in Data steht. Damit ist das Problem nun bei Programmstart behoben.

Delphi-Quellcode:
   if Assigned(Node) and (node.data<>nil) then
     TWinControl(Node.Data).SetFocus;
Danke
Tom
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Ein Control per Procedure selektieren

  Alt 5. Dez 2005, 19:05
Hallo Tom,

Delphi-Quellcode:
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 geschrieben, dass du Code von Creatis für diesen Effekt verwenden kannst. Tue es dann auch und passe den Code im TreeView.OnChange() entsprechend an. Mit meinem auf TEdit oder andere TWinControl-Nachfahren zugeschnittenen Code kannst du auf jeden Fall nicht arbeiten, wenn du TImage verwendest.

Grüße vom marabu
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#13

Re: Ein Control per Procedure selektieren

  Alt 5. Dez 2005, 19:54
Vielen Dank für Deine Hilfe.

Eine kleine Nachfrage und ein kleiner Test brachte nun Licht ins Dunkel.

Delphi-Quellcode:
 if Assigned(Node) and (node.data<>nil) then
    form2.FormDesigner1.Control:=(form2.FindComponent(node.Text) as TControl);
Manchmal gehts gar nicht einfacher, als man denkt...Der Vorteil dies nun zu können liegt unter anderem darin, dass ich die Images nun auch im Treeview umbenennen kann - hoffe ich zumindest.
Danke
Tom
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:09 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