Entwickler-Ecke
Dateizugriff - Parent in dll Form setzen
Carla - Mi 03.03.10 17:04
Titel: Parent in dll Form setzen
Hallo,
ich möchte Formulare in dll auslagern.
Die Fromulare sind im Projekt recht unabhängig und werden mit Showmodal angezeigt.
Z.B. die komplette Kundenverwaltung.
Das funktioniert wie gewünscht.
Ich möchte das Formular aber jetzt im Parent der Hauptanwendung anzeigen.
Ich habe das so gelöst:
in der dll: Windows.SetParent(Form2.Handle, ParentHandle);
Als Parenthandle wird das Handle der Mainform übergeben.
Das Fenster wird wie gewünscht angezeigt aber eingefroren. D.h. Tastatur und Maus
funktionieren nicht mehr.
Hat wer einen Tip, wie ich das hinbekomme?
Gruß
Carla
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mi 03.03.2010 um 16:38
bummi - Mi 03.03.10 17:54
with TMyForm.Create(FormularDerHauptAnwendung).Showmodal
tut nicht wie gewünscht ??
BenBE - Mi 03.03.10 18:06
Wenn Du unbedingt mit der VCL über Modulgrenzen hinweg arbeiten möchtest, linke mindestens gegen die RTL.bpl und die VCL.bpl (mit Laufzeit-Packages), da du dir sonst selbst das Leben unnötig schwer machst. Solch vielsagende Fehlermeldungen wie TFont kann nicht zu TFont zugewiesen werden sind da nur die harmlosen Randerscheinungen bei Nutzung der VCL ohne Laufzeit-Packages.
Carla - Mi 03.03.10 18:27
BenBE hat folgendes geschrieben : |
| Wenn Du unbedingt mit der VCL über Modulgrenzen hinweg arbeiten möchtest, linke mindestens gegen die RTL.bpl und die VCL.bpl (mit Laufzeit-Packages), da du dir sonst selbst das Leben unnötig schwer machst. Solch vielsagende Fehlermeldungen wie TFont kann nicht zu TFont zugewiesen werden sind da nur die harmlosen Randerscheinungen bei Nutzung der VCL ohne Laufzeit-Packages. |
Ich verwende die VCL nicht direkt über Modulgrenzen hinweg, sondern die dll soll eine eigenständige Anwendung sein. Zwischen Application und dll ist ein Interface.
Das aufrufende Programm muss nicht notwendiger weise ein Delphi-Programm sein. Deshalb werden auch nur Windowshandle übergeben.
Ich verwende um Platz zu sparen zwar Vcl,Rtl und noch zwei bpl als Laufzeit - bpl.
Ich halte allerdings das Delphi bpl Konzept und Laufzeit-bpl überhaupt für den größten Schwachsinn, den es in keiner anderen Programmiersprache gibt.
Ich habe die Lösung funktionierend bereits als Outofprocess-Comserver am Laufen.
Wollte aber um die Registrierung zu umschiffen, das Ganze auf dll umstellen.
BenBE - Mi 03.03.10 19:02
Dann geht das mit dem Zugriff über SetWindowParent.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!