AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Formulare als Datei speichern und zur Laufzeit laden? Wie?

Formulare als Datei speichern und zur Laufzeit laden? Wie?

Ein Thema von Dani · begonnen am 24. Aug 2004 · letzter Beitrag vom 9. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#1

Formulare als Datei speichern und zur Laufzeit laden? Wie?

  Alt 24. Aug 2004, 17:08
Hallo

Ich möchte ein im Designer estelltes Formular inklusive aller Komponenten, Methoden, Eigenschaften, Ereignissen usw. in compilierter Form in einer Datei speichern. Diese Datei soll nachher sozusagen als Plugin von einer Übergeordneten Anwendung geladen werden, sodass wieder Instanzen des Formulars erzeugt werden können. Konkret handelt es sich um MDI-Childs. Der Inhalt der Plugin-Formulare soll aber völlig beliebig sein.

Lässt sich sowas mit BPL-Packages erledigen? Falls ja, wie speichere/lade ich ein Formular in/aus einer BPL-Datei?
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 25. Aug 2004, 15:32
Okay, wie man ein Form in einem Package speichert, ist klar... aber wie lädt man das jetzt dynamisch zur Laufzeit? Sorry, ich steh total auf dem Schlauch

LoadPackage() gibt ein Handle zurück, mit dem kann ich aber nichts anfangen.
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
Ort: Oberreichenbach
14.118 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 25. Aug 2004, 15:42
Vieleicht hilft dir das:

Dynamische Laden von packages funktioniert nicht
Packages, alles oder nichts ?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 25. Aug 2004, 16:31
Jau, danke! Werde erstmal eine Weile brauchen, um das zu verstehen
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 29. Aug 2004, 11:26
Hallo nochmal,

ich hätte da gerne mal ein Problem.
Aus einem mir verborgenem Grund findet FindClass() die modulare Formklasse nicht, obwohl sie im initialization-Abschnitt der Package-Unit mit RegisterClass registriert wird. Hier der Code:

Form laden:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 aClass: TClass;
 frmMod: TForm;
begin
  aClass := nil;
  // Package laden
  LoadPackage('Package1.bpl');
  // Klasse finden
  aClass := FindClass('TModuleForm');
  // Instanz erzeugen
  If Assigned(aClass) then
   begin
    frmMod := TFormClass(aClass).Create(self);
    frmMod.Show;
   end;
end;
Unit in Package:
Delphi-Quellcode:
unit uMod1;

interface

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

type
  TModuleForm = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

implementation

{$R *.dfm}

procedure TModuleForm.Button1Click(Sender: TObject);
begin
 close;
end;

initialization
 RegisterClass(TModuleForm);
finalization
 UnRegisterClass(TModuleForm);

end.
Woran könnte das liegen?
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 30. Aug 2004, 16:17
Hmm... wenn ich den initialization-Abschnitt so verändere...
Delphi-Quellcode:
initialization
begin
 Windows.Beep(500, 100);
 RegisterClass(TModuleForm);
 FindClass('TModuleForm');
end;
...gibts hier bei FindClass keine Exception. Hat das damit zu tun, dass der Aufruf von FindClass in einer anderen Unit statt findet? Sollte RegisterClass die Klasse nicht für die gesamte Anwendung registieren?
Dani H.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 30. Aug 2004, 16:20
Hi, du könntest die Formulare auch als DLL-Compilieren, dann kannst du sie ganz normalanzeigen.

gruss
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 30. Aug 2004, 19:11
Schon gut... danke
Dani H.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
774 Beiträge
 
Delphi 2009 Architect
 
#9

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 31. Aug 2004, 04:37
Hi Dani,

in der Toolbox wurde einmal eine Artikelserie zu dem Thema der modularen
Programmentwicklung veröffentlicht. Sie nutze die Möglichkeit des nachladen
von *.BPL Dateien, die nichts anderes als DLL's sind (wenn ich mich recht erinnere).
Es fing im Heft 1 von 2002 damit an
Zitat:
Intelligenter Programmaufbau und Optimierung mit Packages – Michaël Van Canneyt
und hörte schon in Heft 2 von 2002
Zitat:
Navigation in Form-Masken – Michaël Van Canneyt
auf.
In den Heften Nr. 3 und 4 - 2002, kam dan dies
Zitat:
Packages – Die ganz besonderen DLLs
.
Aber schau selbst Toolbox.

Von Van Canneyt kammen im laufe des Jahres noch weitere Artikel die sich mit Design-Fragen
beschäftigten, unter anderem Formulare.
Man kan die Hefte nachbestellen, kosten aber auch je Ausgabe 10 €.

Gruss
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Formulare als Datei speichern und zur Laufzeit laden? Wi

  Alt 31. Aug 2004, 09:12
Naja wenn die Ausgabe 1/2002 mit Sicherheit weiterhilft, wären die 10€ die Sache schon wert... wenn nicht... Pech...

Falls ich rausfinde, woran es liegt, poste ich es halt hier rein. Vielleicht ist das ganze Modulare-Forms-Zeug ja auch nen Eintrag in der Code-Library wert...
Dani H.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf