AGB  ·  Datenschutz  ·  Impressum  







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

"Frame" aus DLL in Dialog einbetten

Offene Frage von "eyeless"
Ein Thema von eyeless · begonnen am 10. Mär 2006 · letzter Beitrag vom 16. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
eyeless

Registriert seit: 12. Aug 2005
49 Beiträge
 
#1

"Frame" aus DLL in Dialog einbetten

  Alt 10. Mär 2006, 23:55
Hallo,

ich würde gern mal wissen, ob folgendes geht und wenn ja, wie:

Ich habe jez mal ein Hauptprogramm, dass nun die einzelnen dlls (als sone Art plugins oder so ...) laden kann, in denen sich wiederum Panels/Frames/wasweissich befinden, die ich dann auf ein Panel/TabSet/wieauchimmer betten lasssen und die ich dann auch janz normal nutzen kann ...

Ich will damit ein Programm bauen, dass Module laden und mit ihnen arbeiten kann usw. ... oder geht das anders besser?

Geht das? Wenn JAR, VIEH????

mfg, eyeless

PS: DF-Link zum Thema
  Mit Zitat antworten Zitat
eyeless

Registriert seit: 12. Aug 2005
49 Beiträge
 
#2

Re: "Frame" aus DLL in Dialog einbetten

  Alt 12. Mär 2006, 19:08
*push*

Kann mir wirklich keiner helfen?

mfg, eyeless
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#3

Re: "Frame" aus DLL in Dialog einbetten

  Alt 13. Mär 2006, 06:52
Ja, das kann man machen. Threads über die Verwendung von DLL's gibts ja genug.
Nur gibt es da ein Problem. Du kannst dir natürlich von deinem Plugin einen Pointer auf eine Panel geben lassen, welches du in der DLL erzeugt hast. Aber, alle normalen Zugriffe auf Eigenschaften, die Objekte sind (also keine einfachen Typen) werden zu Zugriffsverletzungen führen. Das kommt daher, das Objekte innerhalb der VCL als ID's abgelegt werden. Diese ID's gelten aber immer nur innerhalb einer laufenden VCL-Instanz. Das nur als Warnung.

Btw.: Man könnte für obiges Problem mal ein Framework schreiben was dies behebt.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: "Frame" aus DLL in Dialog einbetten

  Alt 13. Mär 2006, 09:06
Wie in jedem Thread dieser Art in dem ich bisher das Vergnügen (*cough, cough*) hatte das gleiche zu antworten, werde ich auch hier das gleiche wie immer antworten:
Schaue dir mal Packages an, DLLs machen nur Sinn wenn du kompatibel zu anderen Sprachen sein willst. DAs was du da machst schließt diese Kompatibilität komplett aus -> also Packages.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#5

Re: "Frame" aus DLL in Dialog einbetten

  Alt 13. Mai 2006, 23:41
Ich benutze auch Frames aus Dlls als "Plugins".

Ich habe schon das erste Problem überwunden: Beim Laden des Frames kam immer der Fehler "TFont kann nicht TFont zugewiesen werden"
Das habe ich abgeschafft indem ich ParentFont beim Frame auf False gesetzt habe.

Dann klappte alles soweit, aber jetzt habe ich ein ListView auf dem Frame platziert, wenn ich den anklicke wenn der Frame in die Anwendung geladen ist, kommt ein Fehler "Element 'XYZ' hat kein übergeordnetes Fenster"

Der Parent vom Frame wird beim Laden auf ein Panel gesetzt (beim Create wird der Parent mit NIL angegeben, er wird manuell später gesetzt, daran liegts aber nicht!)

Was kann ich da tun?
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#6

Re: "Frame" aus DLL in Dialog einbetten

  Alt 15. Mai 2006, 07:32
Du könntest das oben angedeutete Framework nutzen. (Disclaimer: Einige der hier versammelten Delphi-Koryphäen meinen, das dies ein "Hack", "unterminierender Code", "dem DLL-Prinzip defakto widersprüchlicher Code" usw. ist. Was auch immer: er funktioniert. )
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#7

Re: "Frame" aus DLL in Dialog einbetten

  Alt 15. Mai 2006, 11:42
Von dem Framework-Thread:
Zitat:
Oft gibt es ja Diskussionen darüber, warum man von einer DLL nicht auf die Komponenten des aufrufenden Programms zugreifen kann
Aber eigentlich will ich ja nicht von der Dll auf das Programm zugreifen.
Der Dll-Frame wird auf ein Panel im Programm geladen, ansonsten dreht er total sein eigenes Ding.
Die Controls auf ihm bearbeiten nur Eigenschaften und Controls auf sich selbst.
Die einzige Komponente, die vom Hauptprogramm gestellt wird, ist ein IdTCPClient.
Aber in der neuen Dll habe ich den TCPClient noch garnicht benutzt.

Edit: Oh, das ist ja ein anderer Thread, tut mir Leid, ich habe meine Frage nochmal konkreter in einem anderen Thread gestellt!
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#8

Re: "Frame" aus DLL in Dialog einbetten

  Alt 15. Mai 2006, 11:57
Sorry, da hab ich wohl ein wenig an dir vorbei gelesen.

Wie erzeugst du denn dein Frame?
Ich hab hier auf Arbeit ein Programm am Start, das scheinbar ähnlich aufgebaut ist wie das deine. Da musste ich aber den Parent extra per Hand zuweisen. Also CreateParented und Windows.SetParent(bli,bla)
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#9

Re: "Frame" aus DLL in Dialog einbetten

  Alt 15. Mai 2006, 12:05
@chaosben: Tut mir Leid, ich habe meinen Thread nochmal bearbeitet. Ich war durcheinander gekommen ^^
In dem oben genannten Thread steht, wie ich den Frame erzeuge.

Aber ich schaue mir deine Methoden (CreateParented(...) und so) mal an!
Da muss ich dann der VCL dazwischen greifen, ja?
  Mit Zitat antworten Zitat
Benutzerbild von F.W.
F.W.

Registriert seit: 28. Jul 2003
Ort: Zittau
636 Beiträge
 
#10

Re: "Frame" aus DLL in Dialog einbetten

  Alt 15. Mai 2006, 20:44
Also das mit dem CreateParented und Windows.SetParent habe ich versucht, jedoch schlägt es immer wieder gehl (AccessViolations)
ABER!! Ich habe jetzt was entdeckt, weswegen alles und vlt auch grad CreateParented nicht geht:
>> Der Frame hat scheinbar kein Handle!! Wenn ich da einen Haltepunkt setze, dann zeigt Delphi mir nur einen Hint mit der Aufschrift "Delphi-Exception".

Was geht da beim Frame erzeugen schief?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:40 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