Einzelnen Beitrag anzeigen

Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Package .bpl kann nicht geladen werden

  Alt 30. Aug 2006, 07:37
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...
  Mit Zitat antworten Zitat