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.
Habe mir eine kleine TestAnwendung für das problem in VB geschrieben.
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:
deshalb mein Vorschlag die Auflistung in der
dll selbst vorzunehmen.
Hallo ich tue nichts anderes
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