Autor Beitrag
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Do 19.06.03 23:14 
HAllo Leute,

ich habe mir eine DLL gestrickt, in der ich einen Frame habe, den ich in meiner anwendung anzeigen will. Das geht soweit auch schon, allerdings habe ich das problem, daß ich die Fehlermeldung
Zitat:
Listview besitzt kein übergeordnetes Fenster

erhalte, wenn ich in den frame mit rechts klicke, genauer gesagt auf das listview, das dort drinnen liegt. Dann sollte ja eigentlich das popupmenu aufgehen, das geschieht aber nicht, weiß irgend wer, woran das liegt?

Ich habe dem Frame auch schon einen parent zugewiesen, sonst würde es schließlich nicht angezeigt werden können...

Gruß
Ken
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 20.06.03 10:26 
Hallo,

DLLs sind für solche zwecke äußerst ungünstig. Sie sind eigentlich nicht dafür ausgelegt, mit ihr Objekte auszutauschen sondern nur proceduren und funktionen auszutauschen.
Du solltest BPLs oder COM-Objekte bevorzugen.

Gruß
Klabautermann
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 20.06.03 10:34 
hallo,

danke für die hinweise. Dennoch, ich tausche keine Objekte aus, sondern liefer mir nur ein interface zurück. In diesem Interface, habe ich halt prozeduren deklariert, die man aufrufen kann und die greifen auf das frame in der dll zu. Soweit wie ich das bisher verstanden habe, sollte das doch kein problem darstellen, oder?

Gruß
Ken
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 20.06.03 10:56 
Hallo,

das Frame selbst ist ein Objekt, wenn du es in deine Hauptanwendung (also in einem Formular das zur EXE gehört) einbetten willst, dann ist dies das, wass ich mit "Objekt tauschen" meine. Denn deine EXE muss ja an das Objekt (von tFrame) rankommen. Sowas wurde bei der Entwicklung des DLL Standarts nie bedacht.

Gruß
Klabautermann
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 20.06.03 11:59 
muss ich an das objekt wirklich rankommen? Ich dachte, wenn ich alles über das interface abwickel, klappt das auch. Aber vielleicht hast du recht, ich mein, schließlich müssen die nachrichten von windows da auch hingegeben werden können..

Und was ist mit diesem DLL+ konzept? Ich mein, dann muss ich zwar auch die BorlandMemoryManager Dll übergeben, aber das müsste dann doch gehen, oder?

Gruß
Ken
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Fr 20.06.03 14:37 
Hallo,

DLL+ sagt mir nichts (oder ich kenne es nur unter anderer bezeichnung), aber ich weiß nicht ob der BorlandMemoryManager ausreicht. Außer diesem Artikel habe ich nocht keinen hinweis drauf gefunden, das jemand soetwas erfolgreich mit DLLs geschafft hat.
Und auch der Autor rührt da die Werbetrommel für Packages (*.BPL) da sich der Aufwand mit den DLLs nicht lohne.

Gruß
Klabautermann
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 20.06.03 16:37 
das problem bei bpls ist aber, daß man nen haufen runtime librarys mit ausliefern muss, und das will ich nicht... ;\

Gruß
Ken