![]() |
Delphi-Version: 2010
Formular bei Laufzeit aus Package laden
Hallo zusammen liebe DP'ler,
ich arbeite derzeit an ein paar Plugin Konzepten und bin bei meinen Recherchen über die Verwendung von Dlls auf Bpls gestoßen und habe mich jetzt entschieden diese zu nutzen. Von den hier anwesenden Entwicklern würde ich gerne wissen wann ich UnloadPackage(PackageModule); am besten aufrufe denn unmittelbar nach dem Laden bringt mir ja nichts da die Form dann sofort wieder verschwindet :-D Aktuelle Programmstruktur
Code:
Hostanwendung(PackageLoader.exe)
|_Plugin.bpl |_TPluginForm ![]() PackageLoader.exe Laderoutine der BPL
Delphi-Quellcode:
var
PackageModule : hModule; createProc: Procedure; begin // Package laden try PackageModule := LoadPackage('plugin.bpl'); If PackageModule <> 0 then begin @createProc := GetProcAddress( PackageModule, 'CreatePluginForm' ); // Funktion aus den Exports aufrufen if Assigned(CreateProc) then CreateProc else ShowMessage('GetProcAddress failed'); end; finally //UnloadPackage(PackageModule); end; end; plugin.bpl - uPlugin.pas ![]()
Delphi-Quellcode:
unit uPlugin;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TPluginForm = class(TForm) Memo1: TMemo; Panel1: TPanel; Button1: TButton; Edit1: TEdit; Edit2: TEdit; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var PluginForm: TPluginForm; Status: Boolean; implementation uses uRandomString; {$R *.dfm} procedure TPluginForm.Button1Click(Sender: TObject); var User, pwd, mail: String; ul, pl, ml: Integer; begin Status := True; ul := StrToInt(Edit1.Text); pl := StrToInt(Edit2.Text); // ml := StrToInt(Edit3.Text); while Status do begin Application.ProcessMessages; User := RandomString(ul); pwd := RandomString(pl); //mail := RandomString(ml) + '@' + RandomString(5)+'.de'; Memo1.Lines.Add(User+':'+pwd); //+':'+mail); end; end; procedure TPluginForm.Button2Click(Sender: TObject); begin Status := False; end; function CreatePluginForm(ApplicationHandle, ParentHandle: THandle): boolean; begin Result := False; PluginForm := TPluginForm.Create(nil); try PluginForm.Show; //PluginForm.ShowModal; finally end; end; exports CreatePluginForm; initialization RegisterClass(TPluginForm); finalization UnRegisterClass(TPluginForm); end. |
AW: Formular bei Laufzeit aus Package laden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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