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/)
-   -   Control name per variable? (https://www.delphipraxis.net/213632-control-name-per-variable.html)

softtouch 30. Aug 2023 10:12

Control name per variable?
 
Schwer zu erklären, aber sagen wir mal, ich habe 3 TEdit, mit den name edit1, edit2 und edit3.
Gibt es eine Möglichkeit, auf diese in einer Schleife zuzugreifen, indem der Control Name in einer variablen steht?

Delphi-Quellcode:
Pseudo code:

for i:=1 to 3 do
begin
controlname:='edit'+i.tostring;
end;
Wie kann ich auf das Control mit dem Namen controlname zugrifen um properties zu setzen (text zum Beispiel)?
Ich kann ja schlecht controlname.text nutzen.

himitsu 30. Aug 2023 10:19

AW: Control name per variable?
 
Delphi-Quellcode:
Self.FindComponent(dername)


nach Owner -> Delphi-Referenz durchsuchenTComponent.FindComponent
nach Parent -> Delphi-Referenz durchsuchenTWinControl.FindChildControl (nicht mit Delphi-Referenz durchsuchenFindControl)

softtouch 30. Aug 2023 10:24

AW: Control name per variable?
 
Zitat:

Zitat von himitsu (Beitrag 1526249)
Delphi-Quellcode:
Self.FindComponent(dername)


nach Owner -> Delphi-Referenz durchsuchenTComponent.FindComponent
nach Parent -> Delphi-Referenz durchsuchenTWinControl.FindChildControl (nicht mit Delphi-Referenz durchsuchenFindControl)

Danke, habe ich auch gerade gefunden. Funktioniert wunderbar.

dummzeuch 30. Aug 2023 10:36

AW: Control name per variable?
 
Oder einmalig (im Constructor) ein Array füllen, so dass man danach einfach per Index in dieses Array auf die Controls zugreifen kann. Dann ist man auch nicht darauf angewiesen, dass die Namen durchnummeriert sind.

Sherlock 31. Aug 2023 16:04

AW: Control name per variable?
 
Dann würde ich doch eher zu einem Dictionary tendieren. Da kann man dann den Namen dem Objekt gegenüberstellen. Ähnlich wie im Emba Beispiel zu Dictionaries: https://docwiki.embarcadero.com/Libr...nary#Iteration

Sherlock

himitsu 31. Aug 2023 16:38

AW: Control name per variable?
 
Ein Array mit ENUM ist im Code auch nett.

Zugriff per compiler-prüfbaren Namen
und die Möglichkeit mit FOR früberzulaufen.

Delphi-Quellcode:
type
  myControls = (mcEdit1, mcEdit2, mcEdit3);
var
  theControls: array[myControls] of string;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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 by Thomas Breitkreuz