Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Nicht alle Controls vorhanden

  Alt 5. Jul 2011, 20:25
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

Geändert von EWeiss ( 5. Jul 2011 um 20:40 Uhr)
  Mit Zitat antworten Zitat