![]() |
Zensurenübersicht mit automatisches hinzufügen von formulare
hey leute,
ich muss ein zensurenübersichtsprogramm , für die schule, schreiben. bin damit auch soweit fertig. doch ich möchte, dass das programm keine begrenzte anzahl an felder (edit oder panel),wo die zensuren stehen, hat. sonder das mit einen mausklick auf einen button neue felder entstehen die den quelltext beeinhalten. hat jemand eine ahnung wie das geht?? |
Re: Zensurenübersicht mit automatisches hinzufügen von formu
Hi,
was meinst du denn mit Zitat:
Was du brauchst ist das Erzeugen von Controls (Klassen die Sichtbar sind) zur Laufzeit. Das ist an sich auch ganz einfach, es besteht immer aus den Schritten :
In Delphi sähe dass dann ungefähr so aus (kann sehr leicht auf andere Beispiele übertragen werden)
Delphi-Quellcode:
Destination ist hier sehr abstrakt ein TControl, damit kannst du hier also jede beliebige Sichtbare Komponente verwenden (z.B. ein Form, ein Panel,...). Kannst natürlich auch direkt etwas wie Form1.insertControl(...); aufrufen.
procedure insertDummyControl(const Destination : TControl);
var buffer : TLabel; begin buffer := TLabel.Create(Destination); // Erzeugt neue Instanz und setzt Destination als Owner buffer.Caption := 'Bla Blubb'; // beliebige Eigenschaften anpassen .... Destination.InsertControl(buffer); // Damit wird buffer auf Destination platziert / angezeigt end; Da du sicherlich alle erzeugten Instanzen kennen möchtest, solltest du diese einfach in einer Liste speichern. Delphi bietet dir in der Unit Contnrs eine TControlList, die speichert eine beliebige Anzahl von TControls. Hiermit kannst du dann auch etwas anonym arbeiten:
Delphi-Quellcode:
Gruß Der Unwissende
var controlList : TControlList; // möglichst im private Teil deiner Klasse / global speichern
... controlList.Add(TLabel.Create(Destination)); // zugriff auf das letzte eingefügte Element // Zugriffe erfolgen immer auf eine TControl => muss gecastet werden with TLabel(controlList.Items[controlList.Count - 1] do begin // Eigenschaften setzen Caption := 'Bla Blubb'; // besser vor dem casting auf Typsicherheit prüfen // if controlList.Items[controlList.Count - 1] is TLabel then... end; |
Re: Zensurenübersicht mit automatisches hinzufügen von formu
danke
ich denke das wird mir weiter helfen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 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