![]() |
Dynamische Komponentennamen
Hi
Ich würde gerne wissen, wie man Komponentennamen dynamisch verwalten kann z.B.:
Code:
Würde mich über Tips freuen :coder2:
var a:integer;
begin randomize; a:=random(5)+1; Button[a].Hide; {Das geht nicht?! Wie ist so etwas in der Art möglich?} end; Danke! |
Re: Dynamische Komponentennamen
ist relativ einfach:
Delphi-Quellcode:
Und dann kannst Du mit
begin
a := 1; with TButton.Create do begin Name := 'Button' + IntToStr(a); // Button heisst jetzt 'Button1' end; end; ![]() |
Re: Dynamische Komponentennamen
Ich weiß nicht, ob ich jetzt irgendetwas falsch verstanden habe, aber ich hatte mir das folgendermaßen vorgestellt:
Auf dem Formular (Form1) sind 5 Buttons verteilt(Button1-5). Nun soll das Programm zufällig einen aussuchen und verstecken; aber nach der dynamischen methode. |
Re: Dynamische Komponentennamen
Hi,
folge doch mal dem Suchlink von Phoenix... ;) Da wirst du finden, was du suchst. Chris PS: Ansonsten kannst du ja auch ein Array von Buttons erstellen. |
Re: Dynamische Komponentennamen
Mein Problem:
Ich weiß nicht genau nach was ich in den vielen Beiträgen suchen soll. Ich hab keine Ahnung, wie der Fachbegriff für das ist, was ich machen will |
Re: Dynamische Komponentennamen
schau dir in der Hilfe mal FindComponent an, das sollte das sein was du suchst.
einfach per Zufall den Componentennamen in einen String zusammenpacken und dann diesen per findcomponent nutzen um die componente anzusprechen. Siehe Hilfe ![]() |
Re: Dynamische Komponentennamen
|
Re: Dynamische Komponentennamen
also, wenn ich dynamisch mehrere komp. erstelle, speichere ich die immer in arrays so dass ich jeder zeit wieder zugriff hab.
Delphi-Quellcode:
halt so in die richtung
type
TKomponenten= Array [1..37] of Record myedit:tedit; mycheckbox: array [1..8] of TCheckBox; end; ... var ... x, y, z :TKomponenten; i,k:byte; ... for i:=1 to 37 do for k:=1 to 8 do x[i].mycheckbox[k].caption:='test'; |
Re: Dynamische Komponentennamen
Vielen Dank für die vielen guten Tips, hat mir sehr geholfen
Doch ein weiteres Problem ist aufgetreten und ich peil mal wieder garnichts :wall:
Delphi-Quellcode:
Irgendwie geht das nicht, es kommt die fehlermeldung: Unbekannter Bezeichner 'FindComponent', obwohl das im selben Code, nur an einer anderen Stelle schon mal funktioniert hat. Muss man irgendetwas spezielles deklarieren, wenn man das in ne eigene procedure packt?
a:=FindComponent('SpeedButton'+inttostr(speednr));
TSpeedButton(a).Glyph.LoadFromFile('metalol.bmp'); speednr:=speednr+1; a:=FindComponent('SpeedButton'+inttostr(speednr)); TSpeedButton(a).Glyph.LoadFromFile('metalor.bmp'); speednr:=speednr+19; a:=FindComponent('SpeedButton'+inttostr(speednr)); TSpeedButton(a).Glyph.LoadFromFile('metalul.bmp'); speednr:=speednr+1; a:=FindComponent('SpeedButton'+inttostr(speednr)); TSpeedButton(a).Glyph.LoadFromFile('metalur.bmp'); Danke, hmbg! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15: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