![]() |
Problem Form in DLL
Hallo,
ich bin echt schon am verzweifeln, hab auch schon tagelang alles probiert aber es will nicht! Mein Problem: Und zwar hab ich versucht zwei Formulare extern in eine DLL auszulagern, anfangs ging das auch aber nachdem ich noch weitere Formulare eingefügt habe in die DLL will das gar nicht mehr funktionieren, mit allen! Formularen. Hab echt alle möglichkeiten die ich im Netz gefunden hab, ausprobiert, es will einfach nicht mehr funktioneren. Habe jetzt momentan folgende Situation: Habe ein Hauptprogramm und ein Formular in der DLL (mit TTable Komponente, vielleicht liegt es ja daran), wenn ich jetzt auf den ButtonXY klicke sollte es erscheinen. In der DLL hab ich folgendes deklariert:
Delphi-Quellcode:
Und im Hauptprogramm dann:
library vinyll32;
uses Dialogs, SysUtils, Windows, Personeneingabe in 'personeneingabe.pas'; function ShowFormPE : Integer; stdcall; var Form : TFrmPersoEing; begin Form := TFrmPersoEing.Create(Application); Result := Form.ShowModal; Form.Free; end; exports ShowFormPE;
Delphi-Quellcode:
Sobald ich das Programm so starte, bekomme ich nur einen Zugriffsfehler und das Programm startet nicht. Ich kann auch nicht erkennen anhand debugger wo der fehler ist!
...
function ShowFormPE : Integer; stdcall; external 'vinyll32.dll'; ... procedure TFrmStart.BitBtn5Click(Sender: TObject); begin ShowFormPE end; Komischerweise (in meiner Projektgruppe) wenn ich dann die vinyll32.dll Aktiv setzte und diese starte, läudt das Programm soweit, bis ich diese besagte Form öffne. Bin echt schon am verzweifeln, wäre echt cool wenn mir jemand helfen könnte! |
Re: Problem Form in DLL
hmmm :gruebel:
ich hab alles einfach übertragen, und die uses reingehängt, und es lief... sach ma, kannes sein das du die unit Forms nit drin hast??? |
Re: Problem Form in DLL
Zitat:
|
Re: Problem Form in DLL
hallo tschinkes,
ich hatte auch mal ähnliche Probleme, wenn in beiden Projekten (exe und dll) das Laufzeitpackage vcl50.bpl (bzw. vcl60.bpl usw.) verwendet wurde. Damit es lief, mußten wir die Laufzeitpackages im dll-Projekt ausschalten, was natürlich die dll größer werden ließ. Roderich |
Re: Problem Form in DLL
Danke für eure Hilfe, das Forum ist echt nur cool, dicke fette Lobe!
Hab mein Problem abba selbst lösen können: Hatte Units in meinen Formularen in der DLL angegeben, die in der Hauptform integriert waren. Habse gelöscht und es lief wieder. Wegen DLL: Momentan such ich eben eine möglichkeit soviel wie möglich auszulagern, damit ich bei Updates nur wirklich die jeweiligen DLL's reinpacken muss. Und andere möglichkeiten kenn ich noch nicht, muss mich da noch etwas vertiefen. (hab ja erst vor zwei Wochen angefangen Delphi zu lernen ;). Ich muss aber sagen, Delphi ist echt einfach! Hab aber mal eine andere frage zu meinen Formen in der DLL. Und zwar, ich hab eine Form in der Hauptform, die auf weitere Formen zugreift, wie kann ich diese in eine DLL einbinden? Diese greifen auch auf die Hauptform zu. Ich weiß das hat was mit Handle zu tun aber darüber weiß ich eben noch nichts! Wäre cool, wenn mir jemand etwas dabei helfen könnte es zu verstehen wie das funzt!!!!! Nochmals fettes Lob an das Board! Echt cool, bin begeistert!!! |
Re: Problem Form in DLL
Hallo,
ich versuche grad das Selbe umzusetzen, habe aber das Problem, daß er im DLL Project Application nicht kennt. mein Code sieht so aus:
Delphi-Quellcode:
Thx,
library PDFDocuments;
uses SysUtils, Classes, Dialogs, Windows, UPDFReport in '..\Source\UPDFReport.pas' {PDFDataModule: TDataModule}, UPageTimeTable in '..\Source\UPageTimeTable.pas' {frmTimeTable}, UFPageBill in '..\Source\UFPageBill.pas' {frmFirstPage}, UDocument in '..\Source\UDocument.pas'; {$R *.res} Procedure WritePDF();stdcall; var Form: TfrmFirstPage; begin Form := TfrmFirstPage.Create(Application); Form.Show; form.Free; end; exports WritePDF; begin end. ALexander |
Re: Problem Form in DLL
@ahachmann: du musst du unit Forms einbinden, denn in der ist Application definiert
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz