Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MDIChild aus DLL nutzen (https://www.delphipraxis.net/67305-mdichild-aus-dll-nutzen.html)

backdraft 12. Apr 2006 19:04


MDIChild aus DLL nutzen
 
Hallo zusammen,

ich habe schon viel gelesen und gesucht und auf mir schon Klassen von TForm abgeleitet.

Gibt es keine Möglichkeit, das ich ein Formular aus einer Library als MDIChild nutze, wenn die Applikation das MDIFormular ist.

Oder gibt es irgendeine Alternative, was wie MDI aussieht, aber nicht MDI ist?

Oliver

jbg 12. Apr 2006 20:08

Re: MDIChild aus DLL nutzen
 
Zitat:

Zitat von backdraft
Gibt es keine Möglichkeit, das ich ein Formular aus einer Library als MDIChild nutze

Doch: Packages. Das sind auch "nur" DLLs.

backdraft 12. Apr 2006 20:20

Re: MDIChild aus DLL nutzen
 
Und wie geht das?

Mackhack 12. Apr 2006 20:59

Re: MDIChild aus DLL nutzen
 
Wenn du das hier in google.com eingibst:

+mdi+dll

bekommst du das hier als 1. Suchergebnis:

http://delphi.about.com/library/weekly/aa020805a.htm

backdraft 13. Apr 2006 11:53

Re: MDIChild aus DLL nutzen
 
Ok, danke :-)

negaH 13. Apr 2006 12:24

Re: MDIChild aus DLL nutzen
 
der richtige Weg sind Packages, ohne Frage.

Es geht aber auch mit DLLs. Dazu wird in der DLL ein ganz normales TForm eingelinkt. Wenn dieses TForm nun als MDI in die Hauptanwendung eingeblendet werden soll so erzeugt die Hauptanwendung erstmal ein neues und leeres TForm als fsMDIChild. Dieses wird einer Funktion der DLL als Parameter übergeben und darin erzeugt die DLL ihr eigenes TForm. Dessen Properties werden ein gestellt aus .Align := alClient; .IsControl := True; .Parent := MDIForm; .BorderStyle := bsNone; Man bettet also das DLL Form in das MDIForm der Anwendung quasi als Control, wie ein TPanel, ein.

Aber Vorsicht! das ist eben nicht ganz sauber und du musst zb. SharedMM benutzen in deiner DLL und Hauptanwendung.

Dieser Tipp ist rein akademischer Natur! Du kannst als damit rumexperimentieren aber für Produktivcode kann ich nur Packages empfehlen.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 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