![]() |
Nicht alle Controls vorhanden
Warum wird mir bei der Übergabe von
Delphi-Quellcode:
ComboHook.SetComboParentObj(self);
nicht alle Controls an meiner DLL weitergeleitet? Kann es sein weil das Object als TWinControl definiert ist? Und demnach auch nur TWinControls dann sichtbar sind. Was sonst nehmen ? Bei TObject habe ich kein Handle.. Zur besseren verständigung. Ich möchte alle Controls/Komponente oder wie auch immer die sich auf der Form1 befinden an meine DLL weiterleiten (Liste) so das ich dann auswerten kann ob hier ComboBoxen verwendet werden. Es kommt aber nur TComponent und TControl an. Es fehlt TWinControl, TCustomForm, Memo1, ComboBox1, ComboBox2 obwohl sie sich ja eigentlich in Self(Form1) befinden. gruss |
AW: Nicht alle Controls vorhanden
Hat wirklich niemand eine Idee wie ich meiner DLL mitteilen kann welche
komponente sich auf meiner Form befinden so das ich sie dort weiterverarbeiten (parsen) kann?. Oder ist meine Frage einfach nicht verständlich genug ;) Kann ja sein! gruss |
AW: Nicht alle Controls vorhanden
Sorry, ich habe keine fertige Lösung parat, aber vielleicht hilft ja FindWindowEx, d.h. du übergibst das Fensterhandle an die dll und durchsuchst in der dll selbst alle Childs und prüfst deren Klassenname. (
![]() |
AW: Nicht alle Controls vorhanden
Zitat:
Das kann ich selbst.. Nur ich habe ein problem mit der von mir gestellten Frage. Ich habe doch alle Daten in der Variable "SELF" Warum kann ich diese nicht so wie sie sind wenn man den Mauszeiger über "SELF" hält und als ToolTip angezeigt bekommt in meine DLL übergeben? Da kommen nur bruchstücke der komponenten an die auf der Form plaziert sind.. Ist mir zu hoch :) gruss |
AW: Nicht alle Controls vorhanden
Moment. Deine DLL kennt doch das Form-Objekt gar nicht, weil sie einen anderen Speichermanager hat. Das heißt du kannst kein Objekt an einer DLL übergeben. Es sei denn du nutz die Sharemem.dll von Borland als Speichermanager.
|
AW: Nicht alle Controls vorhanden
Zitat:
|
AW: Nicht alle Controls vorhanden
Zitat:
um mal in erfahrung zu bringen woran das in Delphi liegen könnte. Wenn ich hier meine Form(ME, SELF in Delphi) als Objekt übergebe bekomme ich einen pointer auf das Object. ObjPtr(ME) Anschließend kann ich mit CopyMemory auf jede XBeliebige Komponente meiner MAIN Form zugreifen. Und diese über den ClassenNamen und FindWindowEx analysieren welche oder ob überhaupt ComboBoxen auf der Form vorhanden sind. Anschließend definiere ein Variable (ctrl as Control) und prüfe mit "for each ctrl in ParentObj" ob sich komponente auf der Form befinden. Warum ist das in Delphi so kompliziert? Wo beleibt da der Fortschritt ?.. Zitat:
Aber dafür muss ich erstmal Kontrols(in einer Liste) zur verfügung haben die ich parsen bzw.. auswerten kann. Das wollte ich halt mit der Liste von Self erledigen da steht doch alles schon drin also Combo1, Combo2 usw.. UNd das geht nicht wegen dem Speichermanagement? EDIT: @bernerbaer Und du meinst SELF außer acht lassen. Davon nur das Handle nehmen und anschließend über dieses alle Komponente enumerieren.? Hmm.. wäre dann wohl die einzigste möglichkeit. Sharemem will ich nicht einsetzen. Ok. Danke! Werd es mal so testen. gruss |
AW: Nicht alle Controls vorhanden
Zitat:
|
AW: Nicht alle Controls vorhanden
Probleme hast du dann aber bei nicht von TWinControl abgeleiteten Komponenten. Also zum Beispiel Labels und ähnliches. Diese Steuerelemente haben kein Handle. man kann sie also nicht mit FindWindwoEx finden.
|
AW: Nicht alle Controls vorhanden
Zitat:
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 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