Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Stringgrid zur Laufzeit erzeugen (https://www.delphipraxis.net/152863-stringgrid-zur-laufzeit-erzeugen.html)

idefix2 9. Jul 2010 18:28

Stringgrid zur Laufzeit erzeugen
 
In dieser Unit erzeuge ich das Stringgrid grid1 dynamisch, das Panel1 erzeuge ich im Formulardesigner.
Irgend etwas stimmt nicht, weil beim show des Formulars wird nur das Panel, aber kein Stringgrid angezeigt.
Das Panel ist ein schmaler Streifen oben (da kommt eine Toolbar hinein) und lässt noch genug Platz für das Grid :)


Delphi-Quellcode:
unit fdForm1Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, Global, fdGrid;

type
  TfdForm1 = class(TForm)
    Panel1: TPanel;
  protected
    Grid1: TStringgrid;
  end;

procedure showform (name: string; param: string='');

implementation

{$R *.dfm}

procedure showform (name: string; param: string='');

var
f: TfdForm1;

begin
Application.CreateForm(TfdForm1, f);
f.Grid1 := TStringGrid.Create(f);
f.Grid1.align := alClient;
f.Grid1.visible := true;
f.Grid1.Colwidths[0] := 10;
f.Grid1.Options := f.Grid1.Options + [goRowSizing];

f.show;
end;

blauweiss 9. Jul 2010 18:38

AW: Stringgrid zur Laufzeit erzeugen
 
Hallo idefix2,

da fehlt das Setzen des Parent. Visible auf true zu setzen ist dagegen unnötig.

Grüße,
blauweiss

Teekeks 9. Jul 2010 18:38

AW: Stringgrid zur Laufzeit erzeugen
 
Du musst noch das Parent des Grits setzen (also so:)
Delphi-Quellcode:
grid1.parent:=Panel1;
edit: grr, da war jemand schneller :lol:

idefix2 9. Jul 2010 18:52

AW: Stringgrid zur Laufzeit erzeugen
 
Ok, danke.

Mist, daran habe ich überhaupt nicht gedacht - das Formular ist doch Owner, das sollte doch reichen, oder? :roll:

P.S.: Wenn ich das Grid sicherheitshalber (für leichtere spätere Adaptierbarkeit des Formulars) auch in ein Panel legen will, muss dann dieses Panel Owner und parent sein? Oder das Formular Owner und das Grid Parent? Oder das Formular Parent und das grid Owner?

mkinzler 9. Jul 2010 19:01

AW: Stringgrid zur Laufzeit erzeugen
 
Der Owner ist für die Freigabe zuständig, der Parent für das Zeichnen. Die beiden Rollen können durchaus von verschiedenen Objekten ausgefüllt werden.

Matze 9. Jul 2010 19:15

AW: Stringgrid zur Laufzeit erzeugen
 
Der Owner des Panels ist wohl dein Formular. Wird die Anwendung geschlossen bzw. das Formular freigegeben, wird auch das Panel freigegeben und damit auch alles, was das Panel als Owner hat.
Hier ist es daher egal, wer der Owner ist, würde ich sagen. Freigegeben wird es so oder so.

Es sei denn, du erstellst das Panel und gibst keinen Owner an. Dann muss man wohl aufpassen.
Aber so genau kenne ich mich damit auch nicht aus. :angle2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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