![]() |
Form aus BPL dynamisch laden
Hallo,
in einer dynamisch zu ladenden Form befindet sich folgende Anweisung :
Delphi-Quellcode:
Der Aufruf erfolgt mit
initialization
RegisterClass(TForm2); finalization UnRegisterClass(TForm2);
Delphi-Quellcode:
Bei der Anweisung AClass := GetClass('TForm2'); ist AClass nil.
procedure TForm1.Button1Click(Sender: TObject);
var PackageModule: HModule; AClass: TPersistentClass; begin PackageModule := LoadPackage('Package1.bpl'); Application.ProcessMessages; begin AClass := GetClass('TForm2'); if AClass <> nil then with TComponentClass(AClass).Create(Application) as TCustomForm do begin ShowModal; Free; end; UnloadPackage(PackageModule); end; end; Binde ich die Form statisch ein, dann funktioniert die Anweisung. Es handelt sich um ein Beispielprojekt von der Borland BDS Seite. Dynamic Packages A white paper by Vino Rodrigues, vinorodrigues@yahoo.com Copyright (C) 2001 Vino Rodrigues Sourcecode to example 2 Hat wer einen Tip, was hier beim dynamischen verwenden einer Form schief läuft? Gruß Peter |
Re: Form aus BPL dynamisch laden
Ich hatte bereits in der vergangenen Woche zu diesem Thema gefragt und keine
Antwort erhalten. Da ein Beispiel aus einem Borland Tutorial auch nicht funktioniert, gehe ich inzwischen davon aus, dass es sich um einen Bug in D2006 handelt. Gruß Peter |
Re: Form aus BPL dynamisch laden
|
Re: Form aus BPL dynamisch laden
Zitat:
Initialisationsteil durch. RegisterClass wird abgearbeitet, aber die Klasse ist danch mit GetClass nicht zu finden. Interessanter Weise funktioniert das, wenn ich die Unit statisch einbinde. Und wie gesagt, das ganze ist ein borland-Beispiel. Gruß Peter |
Re: Form aus BPL dynamisch laden
Hast du es mal mit FindClass probiert?
Damit hab ich das unter D7 mit Forms aus Packages immer gemacht. |
Re: Form aus BPL dynamisch laden
Dumm gefragt, aber ist das Hauptprogramm auch gegen das rtl/vcl Package kompiliert ("Mit Laufzeitpackages kompilieren")? Denn wenn nicht, dann hast du zwei Klassen-Listen, die nichts von einander wissen.
|
Re: Form aus BPL dynamisch laden
Zitat:
Ich habe einfach das Beispiel von Borland BDS kopiert und ausprobiert. Ich bin erst am Montag wieder in der firma und kann das prüfen. Kann mir übrigens wer ein (kostenpflichtiges) Tool empfehlen, was das Update der BPL Hölle einfacher macht. So etwa in der Form. Bestimme alle zu updatenden Dateien, stelle dies ins Internet und lege dort zum Download eine Liste an, die gegen die aktuelle Konfiguration abgeglichen wird. (Autoupdate) Mit Gruß Peter |
Re: Form aus BPL dynamisch laden
[quote="hanspeter"]
Zitat:
Viele Grüße Igotcha |
Re: Form aus BPL dynamisch laden
Auch wenns schon ne Weile her iss, ich habs selbe Problem gehabt.
Das hier muss noch in die Unit der BPL unten hin:
Delphi-Quellcode:
initialization
RegisterClass({Klassenname}); |
AW: Form aus BPL dynamisch laden
Hallo,
ich entstaube mal diesen Thread (irgendjemand sollte mal im Archiv staubwischen). Ich habe auch das Problem, dass GetClass immer Nil zurückliefert, obwohl die Klasse im Package registriert wird. Hier mal der aktuelle ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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