![]() |
Komponenten dynamisch erzeugen und darauf zugreifen
da immer wieder Fragen bzgl. diesem Thema auftauchen
hier ein kleines(winziges) Tutorial weil ich noch nie eins gemacht habe kann es sich natürlich mit keinem anderen hier messen aber ich hoffe einigen Usern zu helfen
Delphi-Quellcode:
Nachtrag von SirThornberry:
unit Unit1;
{BY NICO MÜLLER für die DP User} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, ComCtrls, StdCtrls; type TForm1 = class(TForm) PageControl1: TPageControl; Button1: TButton; TabSheet1: TTabSheet; TabSheet2: TTabSheet; TabSheet3: TTabSheet; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Auswahl : Integer = -1; // gewünschtes Feld implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Stringgrid: TStringgrid; // startname : TComponent i : Integer; // Zählvariable begin { Wir gehen davon aus das Pagecontrol1(zusätzliches 2 Komponente) sich am Form1 befindet und das 3 Tabsheets drauf sind (Rechtsklick auf das oageCOntrol1 "neue Seite"} for i := 0 to PageControl1.PageCount-1 do // von 1 bis zur Anzahl der Tabheets zählen begin Stringgrid:= TStringgrid.Create(self); // neue Komponenten erzeugen // dann alles waste brauchst(felder ins stringgrid etc) Stringgrid.Parent := PageControl1.Pages[i]; { wo es sich befinden soll, hier ists die jeweilige aktuelle Seite} stringgrid.Name := 'St_' + intToStr(i); //neuen namen geben end; end; procedure TForm1.Button2Click(Sender: TObject); var text : String; // der Text der Eingegeben soll begin Auswahl := StrToInt(Inputbox('Index angeben','Bitte den' + ' Index der gewünschten Tabelle eingeben(0-2)', IntToStr(Auswahl+1))); // Auswahl wird gelsesen Text := Inputbox('Text angeben','Bitte ´den Text der eingetragen werden soll eingeben', 'TEST'); // Text wird eingelesen with TStringgrid(FindComponent('St_' + IntToStr(Auswahl))) do Cells[1,1] := Text; // die "ST_<Auswahl>" wird bei [1,1](links oben) mit dem text beschriftet end; end. Zitat:
--> ich denke es ist die richtige Sparte :D positive Kritik und Hilfen zur Verbesserung sind gerne erwünscht mfg Nicodius [edit=Chakotay1308]Nachtrag von SirThornberry. Mfg, Chakotay1308[/edit] [edit=Matze]Code formatiert. Mfg, Matze[/edit] [edit=flomei]Wir "räumen auf", daher Titel geändert... Mfg, flomei[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 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