Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TForm.create was nu? (https://www.delphipraxis.net/9431-tform-create-nu.html)

Die Muhkuh 26. Sep 2003 11:40


TForm.create was nu?
 
HI,

ich erzeuge mit:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  NF := TForm.Create (Self);
  NF.show;
end;
Eine Neue Form! wie bekomm ich auf diese Form Labels, panels, button und so weiter aslo die ganze kompos reihe???


Spider

Christian Seehase 26. Sep 2003 11:48

Re: TForm.create was nu?
 
Moin Spider,

im Prinzip genauso.
Als Owner kannst Du dann das neue Formular angeben, dies ist dann nur später wichtig für die Freigabe der Komponenten, und als Parent gibst Du das Formular an, wenn dies der direkt übergeordnete Container sein soll. Die dynamisch erzeugten Kompos werden immer relativ zum Parent ausgerichtet.

RomanK 26. Sep 2003 11:50

Re: TForm.create was nu?
 
Hoi, entweder mit Variable für das Label oder ohne:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
NL :TLabel;
begin
  NF := TForm.Create (Self);
  NF.show;
 NL :=TLabel.Create(NF);
 NL.parent := NF;
 NL.caption := 'lalalalei';
end;
und jetzt ohne
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  NF := TForm.Create (Self);
  NF.show;
with TLabel.Create(NF) do
begin
parent := NF;
caption := 'lalalalei';
end;
end;

st2000 26. Sep 2003 13:01

Geht das auch mit einem Frame ?
 
Hallo, kann ich statt einem TLabel auch einen mit Neu/Frame erstellten Frame (der auch in der Objektpalette aufgenommen ist) so dem Formular hinzufügen ?
Benutze ich dazu den Create-Konstruktor, der von TFrame geerbt wurde ?
Oder muß ich einen neuen programmieren ? Eine "Komponente" die mit einem Frame gebastelt wurde, ist ja irgendwie so ein Zwischending zwischen Komponente und bloßem instanzierten Objekt, oder ? :gruebel:

Wenn auf dem Mainform ein Panel liegt, und der Frame soll auf das Panel rauf, dann muß ich doch als Owner das Mainform angeben, und als Parent das Panel, richtig ? :roll:

Delphi-Quellcode:
unit Frame_1000821;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, Db, DBTables, StdCtrls, ExtCtrls;

type TFr_1000821 = class(TFrame)
    Edit1_1000821: TEdit;
    Edit2_1000821: TEdit;
    Label1_1000821: TLabel;
    Label2_1000821: TLabel;
    Label3_1000821: TLabel;
    Bevel1_1000821: TBevel;

  private
    { Private declarations }

  public
    { Public declarations }

end;

implementation

{$R *.DFM}

{ TFrame1 }

end.
Bin für jeden Tip dankbar, denn bislang quittiert mir Delphi den Create-Aufruf immer mit einer EAccessviolationExeption. Was daran falsch ist, sagt mit Delphi leider nicht.... :cry:

Gruss,
ST2000


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:19 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-2025 by Thomas Breitkreuz