Ich hab verschiedene Beispiele probiert, aber immer das gleiche Ergebnis. Aktuell habe ich dieses:
Delphi-Quellcode:
procedure TForm1.***on1Click(Sender: TObject);
var
sFilename :
string;
hndHandle : HModule;
clsClass : TComponentClass;
clsComp : TComponent;
begin
sFilename:='
c:\delphi\projects\bpl\cjIndic1.bpl';
hndHandle:=LoadPackage(sFilename);
if hndHandle>0
then begin
clsClass:=TComponentClass(GetClass('
TIndic1'));
if Assigned(clsClass)
then begin
clsComp:=clsClass.Create(Application);
edit1.Text:='
yes!';
end
else
Edit1.Text:='
class not found';
end
else
Edit1.Text:='
Package not found';
end;
Im
Package befinden sich nur ein button auf einer Form, der auf Klick nur ne Message bringt.
und das noch:
Delphi-Quellcode:
initialization
RegisterClasses([TForm2]);
finalization
UnRegisterClasses([TForm2]);
Mittlerweile bin ich noch bei etwas anderem, da das Ganze in einer Schleife soll, die Funktion die das macht ist wieder in ner Prozedur usw.
Delphi-Quellcode:
procedure TForm1.BitBtn2Click(Sender: TObject);
function GetFileName(iCount: Integer): String;
var
sTemp: String;
begin
sTemp := ExtractFileName(MyFileList.Strings[iCount]);
sTemp := Copy(sTemp, 1, (Length(sTemp) -5));
Result := sTemp;
end;
function DoFilesUnload: Boolean;
var
iFor: Integer;
begin
//Alte Files löschen
try
for iFor := PageControl1.PageCount -1 downto 1 do
begin
PageControl1.Pages[iFor].Free;
end;
finally
FreeAndNil(MyFileList);
Result := True;
end;
end;
function DoFilesLoad: Boolean;
var
iFor: Integer;
MyModule: HModule;
begin
try
//Neue Files einlesen
MyFileList := TStringList.Create;
MyFileList.AddStrings(OpenDialog1.Files);
for iFor := 0 to MyFileList.Count -1 do
begin
CreateSheets(iFor, GetFileName(iFor));
MyModule := LoadPackage(MyFileList.Text[iFor]);
if MyModule <> 0 then
begin
try
finally
UnloadPackage(MyModule);
end;
end
else
ShowMessage('dfhdfghfg');
end;
finally
Result := True;
end;
end;
begin
if OpenDialog1.Execute then
begin
if bFilesOpen then
begin
if not DoFilesUnload then
ShowMessage('Dateien konnten nicht geschlossen werden.');
if not DoFilesLoad then
ShowMessage('Dateien konnten nicht geladen werden.');
bFilesOpen := True;
end
else
begin
if not DoFilesLoad then
ShowMessage('Dateien konnten nicht geladen werden.');
bFilesOpen := True;
end;
end;
PageControl1.TabIndex := PageControl1.PageCount -1;
end;
Servus...