Da für .bpl-PlugIns anscheinend die gleiche Beschränkung besteht, haben wir es jetzt doch mit Laufzeitpackages und ner
DLL gemacht. Der Button ist da, allerdings bekommen wir noch eine ungültige Zeigeroperation.
Quellcode aus der EXE:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var DllPrg :
procedure (Parent : TForm);
stdcall;
Handle : cardinal;
begin
Handle := LoadLibrary(PChar(ExtractFilePath(ParamStr(0))+'
project2.dll'));
if Handle <> 0
then
begin
@DllPrg := GetProcAddress(
Handle, '
BtnErzeugen');
if @DllPrg <>
nil then
begin
DllPrg(Form1);
//<--- hier kommt die ungültige Zeigeroperation
end;
end;
end;
Quellcode aus der
DLL:
Delphi-Quellcode:
procedure BtnErzeugen(parent : Tform); stdcall;
var btn : TButton;
begin
btn := TButton.create(parent);
btn.parent := parent;
btn.name := 'btn1';
btn.left := 100;
btn.top := 100;
end;
Danke schon mal!