![]() |
Package erstellen und verwenden
Hallo,
da ich mich gestern entschlossen habe, ein Programm von mir erweitern, dacht ich mir ich könne dies ja "modular" aufbauen. D. h. bpl vorhanden = funktion möglich, bpl nicht vorhanden = funktion nicht möglich Lider weiss ich nicht wie man bpl´s erstellt und verwendet - hab auch nix gscheits in der suche gefunden gibt es dafür eine gute Anleitung? |
Re: Package erstellen und verwenden
Datei -> Neu -> Weitere -> Package
|
Re: Package erstellen und verwenden
Zitat:
Aber wie verwendet man diese? Ich möcht die ja im Code aufrufen etc. |
Re: Package erstellen und verwenden
Hrm. Keine Ahnung. ;-)
Aber schau mal hier nach: ![]() Dürfte in die richtige Richtung gehen. |
Re: Package erstellen und verwenden
mmh - bringt mich auch nicht wirklich weiter
|
Re: Package erstellen und verwenden
|
Re: Package erstellen und verwenden
Liste der Anhänge anzeigen (Anzahl: 1)
so, da bin ich wieder :-)
Ich hab jetzt mal das Beispiel von mkinzler getestet. Leider funktionierts nicht so richtig. Mein Test-Programm ist angehängt. Dabei befindet sich auch die Package. Mein Problem ist hier:
Delphi-Quellcode:
Das Package wird gefunden, aber keine Klasse "TForm2".
AClass := GetClass('TForm2');
AClass ist also nil. Kann mir jemand helfen wieso weshalb und warum das so ist? :angel2: |
Re: Package erstellen und verwenden
Zitat:
|
Re: Package erstellen und verwenden
Zitat:
Das Alter :mrgreen: Das Beispielprogramm ist im letzten post |
Re: Package erstellen und verwenden
Zitat:
|
Re: Package erstellen und verwenden
versteh ich jetzt inhaltlich ned
ich hab doch keine objekte |
Re: Package erstellen und verwenden
Eigentlich ist der erste Satz bedeutend.
Die Formklasse, welche du erzeugst ist auch ein Objekt |
Re: Package erstellen und verwenden
und was muss ich jetzt ändern?
|
Re: Package erstellen und verwenden
Liste der Anhänge anzeigen (Anzahl: 1)
Den Haken setzen
|
Re: Package erstellen und verwenden
ah - wunderbar
danke! |
Re: Package erstellen und verwenden
Ich hätt da noch eine Frage:
Bei dem obigen Beispiel wird ja eine Form angezeigt. Ich möcht nun aber folgendes machen: In ein vorhandenes Projekt möcht ich eine Funktion hinzufügen, die in einem Package hinterlegt ist (es handelt sich um einen Rave-Report). Da man aber für einen Rave-Report keine Form braucht, dacht ich mir, ich erstelle nur eine Unit, bastel mir ein Create und einen Destructor und arbeite da drin mit den Komponenten. Findet das MainProgramm die bpl dann wird die funktion durchgeführt. Mein Problem ist, nun dieses alles zu programmieren. Ich dacht mir ich bastel einfach eine Unit, nämlich so:
Delphi-Quellcode:
Und so aufgerufen im Mainprogramm:
unit Unit2;
interface uses Classes; type TTest = class(TComponent) private { Private-Deklarationen } public { Public-Deklarationen } constructor Create; destructor Destroy; end; implementation constructor TTest.Create; var S: String; begin // S := 'hallo'; end; destructor TTest.Destroy; begin // inherited; end; initialization RegisterClass(TTest); finalization UnRegisterClass(TTest); end.
Delphi-Quellcode:
Nur glaub ich, dass ich mich in irgendwas verrenne!
var
PackageModule : HModule; AClass : TPersistentClass; Datei : String; begin Datei := ExtractFilePath(Application.ExeName) + 'Package1.bpl'; If not FileExists(Datei) then begin ShowMessage(Datei + ' nicht vorhanden!'); exit; end; PackageModule := LoadPackage(Datei); If PackageModule <> 0 then begin AClass := GetClass('TTest'); If Assigned(AClass) then with TComponentClass(AClass).Create(Application) as TComponent do begin // ShowModal; Free; end; UnloadPackage(PackageModule); end; Kann mir jemand einen Tip geben, ob ich auf dem richtigen weg bin und falls nciht, wie man es richtig macht? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:07 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