Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschied zwischen Form und Frame! (https://www.delphipraxis.net/2098-unterschied-zwischen-form-und-frame.html)

Bee 7. Jan 2003 00:09


Unterschied zwischen Form und Frame!
 
Hallo an alle,

Ich habe gestern aus diversen Gründen bei mir Delphi 6 PE installiert, da fiel mir unter anderem in der Standardpalette auf das es eine Komponente Namens Frame gibt, was ist der Unterschied zwischen Form und Frame, für mich sieht beides (fast) gleich aus.

Nun aber zum wichtigeren teil meiner Frage kann man ein Form oder auch Frame dynamisch zur Laufzeit generieren, da man dazu ja auch eine Unit braucht. Da mein aktuelles Projekt mit einem Touchscreen zusammenarbeiten soll und ich sonst viele Forms definieren müsste.

Danke
Bee

nailor 7. Jan 2003 01:09

Forms kann man auch während der Laufzeit dynamisch erstellen. Genau wie mit anderen Komponenten (zB Buttons, Labels... Verfahren). Wenn ich mich jetzt nicht ganz gewaltig irre, gibt es nichts wirklich besonderes zu beachten.

Christian Seehase 7. Jan 2003 01:20

Moin Bee,

Frames sollten eigentlich als Ersatz für die Objektablage dienen, um sich vorgefertigte Formulare bzw. Bestandteile davon, für verschiedenste Einsatzzwecke vordefinieren zu können, so gesehen sind diese auch sehr ähnlich.

Da Frames (angeblich, ich hab' nie damit gearbeitet) aber recht buggy sein sollen konnten sie sich wohl nicht so recht durchsetzen.
(Zumal man so etwas, mit einem kleinen Trick, auch mit "normalen" Formularen hinbekommt.)

Ein Formular von Grund auf zu erzeugen dürfte wohl nur in nonVCL gehen, da Dir sonst die Resourcen fehlen, die Delphi braucht, um das Forumlar zu generieren (dieses unauffällige {$R *.dfm} was in jeder Formularunit im implementation Abschnitt steht).

Es spricht allerdings nichts dagegen eine Unit einzubinden, in der nichts ausser einem Formular enthalten ist, dass man dann auch erst zur Laufzeit dynamisch erzeugt (Application.CreateForm aus der Projektdatei für dieses Formular löschen) und dann mit Komponenten versieht wie's gerade kommt.
Dazu müssen dann zwar die entsprechenden Units die die jeweiligen Komponenten enthalten zwar mit eingebunden sein, aber welche das sind ergibt sich wohl schon aus den Zeilen die man schreibt, um das dynamische Formular zu gestalten.

nailor 7. Jan 2003 01:25

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a: TForm;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a := TForm.Create(self);
a.Visible := true;
end;

end.
Geht doch wunderbar!!!

Christian Seehase 7. Jan 2003 01:31

Moin Nailor,

das ist ja lustig.

Geht tatsächlich.

Da frag' ich mich, was ich eigentlich damals genau gemacht habe, als ich das mal erfolglos ausprobiert hatte :oops:

Scheint nicht so mein Tag zu sein :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz