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/)
-   -   Delphi TLabel zur Laufzeit (https://www.delphipraxis.net/2181-tlabel-zur-laufzeit.html)

MadMason 11. Jan 2003 13:01


TLabel zur Laufzeit
 
Ich habe ein Form mit einer PageControl
auf einem Tabsheet ist eine GroupBox

Ich möchte nun zur Laufzeit ein Label in der GroupBox erzeugen.

wenn ich mit
Code:
 var lab: TLabel;

 lab:= TLabel.Create(GroupBox1);
 lab.Top:= 8;
 lab.Left:= 8;
 lab.Caption:= 'Test';
ein label erzeuge ist das aber nirgendwo zu sehen

was mach ich falsch?

CalganX 11. Jan 2003 13:18

Ersteinmal ein Tipp: formatiere deine Sources doch bitte mit den Delphi-Tags ( [ delphi ] ... [ /delphi ] (nur ohne Leerzeichen))...

Also, zu deinem Problem: Du musst ersteinmal das Label auf Visible stellen:
Delphi-Quellcode:
Lab.Visible := true;
Lab.Parent := GroupBox1; // ist auch noch zu empfehlen
Chris

Christian Seehase 11. Jan 2003 13:51

Moin Chris,

das visible ist bei einem Label nicht erforderlich, da dies standardmässig auf true steht.

CalganX 11. Jan 2003 14:04

Also, ich habe die Erfahrung gemacht, dass Visible bei dynamisch erstellten Komponenten immer auf false steht...

Chris

Christian Seehase 11. Jan 2003 14:11

Moin Chris,

das könnte dann heissen, dass es entweder (Delphi)Versionsabhängig ist, was ich allerdings für eher unwahrscheinlich halte, oder von der Kompo abhängt.
Deshalb hatte ich auch explizit geschrieben, dass es bei TLabel nicht notwendig ist. ;-)
Schaden kann es natürlich trotzdem nicht.

eddy 11. Jan 2003 19:12

Hallo MadManson,

ich hatte das gleiche Problem. Nachdem ich Parent einen Wert zuwies, erschienen die Labels auf dem Bildschirm.

Anbei noch ein Programmstückchen:

Delphi-Quellcode:
      with TLabel.Create(gbGruppen) do begin
        Parent := gbGruppen;
        name := 'lbl' + s;
        Left := vleft + colofs * (vwidth + colds);
        Top := vtop + rowofs * (lblheight + lblds + vheight + rowds );
        Height := lblheight;
        Caption := s;
//        visible := true;
      end;
Wie Du siehst, hatte ich es auch zuerst mit Visible probiert. gbGruppen ist der Name der GroupBox. Left und Top werden berechnet (sind hier nicht von Bedeutung).

mfg
eddy

nailor 11. Jan 2003 20:04

Man kann auch InsertControl nehmen, anstatt ein Parent zuzuweisen. Funktioniert gleich, ist wahrscheinlich Geschmackssache.

Christian Seehase 11. Jan 2003 21:53

Moin Nailor,

Zitat:

Zitat von Delphi Hilfe: InsertControl
InsertControl sollte in einer Anwendung nicht direkt aufgerufen werden. ... Zur Laufzeit können Sie ein Steuerelement mit Hilfe seiner Eigenschaft Parent in das Array Controls einfügen.

Ein Unterschied, der natürlich bei dynamisch erzeugten Controls unwichtig ist, ist der, das bei der Zuweisung von Parent dafür gesorgt wird, dass das Control aus seinem bisherigen Container entfernt wird.

MadMason 12. Jan 2003 10:46

thx an alle

habs jetzt hibekommen :bounce1: :bounce2: :bouncing4:


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