Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dynamische Komponenten (https://www.delphipraxis.net/1770-dynamische-komponenten.html)

jbg 22. Dez 2002 23:47

Ja, du musst jeder Komponente sagen, wer für das Freigeben zuständig ist (Owner) und wer für das Anzeigen (Parent).

Privateer3000 23. Dez 2002 06:23

Ich hab noch einen :mrgreen:
wie sage ich dem ersten LAbel an welche Position es muss.
Denn es wird ganz links oben mit dem Aufbau der Labels begonnen.
Bisher konnt ich immer alles auf IDE positionieren.Aber mit Komps die erst zur Laufzeit erstellt hantiere ich zum erstenmal.

Einen schönen Montag

jbg 23. Dez 2002 08:24

Verschieben kannst du das ganze, indem du bei der Zuweisung an Left unt Top noch einen (konstanten) Wert hinzufügst:
Delphi-Quellcode:
aLabel.Left := StartX + Spalte*80;
  aLabel.Top := StartY + Zeile*25;

Christian Seehase 23. Dez 2002 13:11

Moin Zusammen,

Zitat:

Zitat von jbg
du musst jeder Komponente sagen, wer für das Freigeben zuständig ist (Owner) und wer für das Anzeigen (Parent).

Nur der Vollständigkeit halber:
Bei dynamisch erzeugten TTabSheet, muss man auch noch das zugehörige PageControl angeben, damit man von den Tabsheets was sieht.

Privateer3000 23. Dez 2002 14:30

Habt vielen Dank,
jetzt klappt es so wie ich es wollte.Und verstanden hab ich es auch :angle2: , hoffe ich jedenfalls.
Wie spricht man im laufenden Programm so eine erstellte Komponente an?
Wie eine "normale" auch?Denn sie sollen ja im Programm auch weiterbehandelt, bzw angesprochen werden.

Ich glaub das war jetzt ne blöde Frage,egal :o)

jbg 23. Dez 2002 14:36

Entweder du legst ein Array[0..24-1] of TLabel an, oder du verpasst jedem Label auch einen Namen, den du dann mit Owner.FindComponent wieder finden kannst.

Christian Seehase 23. Dez 2002 14:51

Moin Privateer,

Du hast doch in dem einen Beispiel eine Variable aLabel vom Typ TLabel.
aLabel muss nur an einer Stelle im Programm deklariert werden, so dass Du von jeder Stelle an der Du sie brauchst auch da rankommst.

Wird sie z.B. nur innerhalb von Methode von Form1 gebraucht, kannst Du dort im Abschnitt private die Variable unterbringen.

Delphi-Quellcode:
TForm1 = class(TForm)
...
private
  FaLabel : TLabel;
...
end;

var
  Form1 : TForm1;
Das führende F muss nicht sein, damit wird nur den Namenskonventionen für Felder (Variablen) von Objekten/Klassen genüge getan.

jbg 23. Dez 2002 14:59

Das Problem dabei ist aber, dass die Variable aLabel eben nicht alle 24 Labels gleichzeitig referenzieren kann. Somit wird er um ein Array bzw. die Name-Lösung nicht herumkommen.

Privateer3000 23. Dez 2002 15:02

wie soll das funktionieren mit dem array?
Die Anzahl der Labels ist ja variabel.

*schnüff*

jbg 23. Dez 2002 15:11

Schon mal was von einem dynamischen Array gehört?

Delphi-Quellcode:
SetLength(LabelArray, AnzahlDerLabels);


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Seite 2 von 4     12 34      

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