AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Probleme mit LoadPackage Fehler: TForm2 ist nicht registrier

Probleme mit LoadPackage Fehler: TForm2 ist nicht registrier

Ein Thema von firefox · begonnen am 19. Mai 2005 · letzter Beitrag vom 19. Mai 2005
 
firefox
(Gast)

n/a Beiträge
 
#1

Probleme mit LoadPackage Fehler: TForm2 ist nicht registrier

  Alt 19. Mai 2005, 09:21
Hallo,
ich bin echt am verzweifeln und hoffe jetzt hier auf Hilfe. Ich möchte ein Formular aus einem Package.bpl dynamisch laden und im Hauptprogramm auf ein Panel setzen. Hatte das auch schon mal geschafft, aber den Code nicht mehr. Das Problem ist: beim aufrufen (Button1 des Hauptprogramms) kommt der Fehler: TForm2 ist nicht registriert. Obwohl ich in der Unit des Package.bpl die Klasse registriere mit:

initialization
RegisterClass(TForm2);
finalization
UnregisterClass(TForm2);

Habe mal ein Beispiel für hier erstellt: (Im Anhang ist das komplette Projekt als ZIP File drin)

Das Hauptprogramm:

Delphi-Quellcode:
program Project1;

uses
  Forms,
  MainUnit1 in 'MainUnit1.pas{Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

unit MainUnit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Button1: TButton;
    MainPanel: TPanel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  phm: HModule;
  FormClass: TFormClass;
  Form: TForm;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   Application.ProcessMessages;
   phm := SysUtils.LoadPackage('Package1.bpl');

   If phm > 0 then begin
       FormClass := TFormClass(Classes.GetClass('TForm2'));
    If FormClass = nil then
      raise Exception.Create('TForm2' + ' ist nicht registriert');
      if assigned(FormClass) then begin
         Application.CreateForm(FormClass, Form);
         Form.Parent := MainPanel;
         Form.Position := poDesigned;
         Form.BorderStyle := bsNone;
         Form.WindowState := wsMaximized;
         Form.Show;
      end;
   end;
 end;

initialization
   RegisterClass(TForm1);
finalization
   UnregisterClass(TForm1);
end.
----------------------------------------------------------------------------------------------------------

Das Nebenprogramm bzw. auch die Unit (xUnit2.pas) welche im Package1.bpl verwendet wird mit der Form2 die angebeblich nicht registriert ist

Delphi-Quellcode:
program xProject2;

uses
  Forms,
  xUnit2 in 'xUnit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.


unit xUnit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, StdCtrls;

type
  TForm2 = class(TForm)
    Memo1: TMemo;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

initialization
   RegisterClass(TForm2);
finalization
   UnregisterClass(TForm2);
end.
So sieht das Package1.dpk aus - ist auch dabei in der Anlage

http://x-power.de/package.jpg

Kann mir da jemand helfen. Das muss so ähnlich gehen!
Vielen Dank für eure Hilfe und hoffentlich jede Menge Tipps.

Gruß Firefox
Angehängte Dateien
Dateityp: zip loadpack_900.zip (435,6 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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 by Thomas Breitkreuz