Delphi-PRAXiS
Seite 1 von 3  1 23      

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/)
-   -   Prism Auf Control zugraufen per Schleife? (https://www.delphipraxis.net/48745-auf-control-zugraufen-per-schleife.html)

Taladan 29. Jun 2005 21:42


Auf Control zugraufen per Schleife?
 
Ich möchte gerne auf Controls (u. a. auf Buttons und Panels) per schleifen zugreifen.
Das klappt aber nicht so wie ich es mir vor stelle, kann mir einer sagen wie ich es richtig machen muß?
z.b.:
Delphi-Quellcode:
   for i := 0 to 5 do begin
     button[i].visible := false;
     panel[i].visible := false:
   end;

Luckie 29. Jun 2005 21:43

Re: Auf Control zugraufen per Schleife?
 
Die Suche ist dein Freund: Hier im Forum suchenFindComponent.

Taladan 29. Jun 2005 22:09

Re: Auf Control zugraufen per Schleife?
 
Ich finde nur Win32 antoworten.

Delphi-Quellcode:
      FindComponent('Button' + (i)) as Button).Visible := false
Hier wird nur schön fein säuberlich FindComponent rot unterkringelt...

Luckie 29. Jun 2005 22:17

Re: Auf Control zugraufen per Schleife?
 
Man könnte ja auch mal so verwegen sein und das genannte Stichwort in der Hilfe nachschlagen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  i: Integer;
const
  NamePrefix = 'MyEdit';
begin
  for i := 1 to 20 dobegin
    TEdit.Create(Self).Name := NamePrefix + IntToStr(i);
    with TEdit(FindComponent(NamePrefix + IntToStr(i))) do
    begin
      Left := 10;
      Top := i * 20;
      Parent := self;
    end;
  end;
end;

Daniel G 29. Jun 2005 22:18

Re: Auf Control zugraufen per Schleife?
 
Zitat:

Zitat von Taladan
Ich finde nur Win32 antoworten.

Delphi-Quellcode:
      FindComponent('Button' + (i)) as Button).Visible := false
Hier wird nur schön fein säuberlich FindComponent rot unterkringelt...

Jo, und wo ist jetzt das Problem? Schließlich ist das ja hier auch ein Win32 - Thread, oder?

//Ups, sorry Luckie... Hab' mir den Post zu lange angesehen...

Taladan 30. Jun 2005 20:13

Re: Auf Control zugraufen per Schleife?
 
Das gepostete Beispiel funtkionert nicht bei .Net anwendungen

mirage228 30. Jun 2005 20:49

Re: Auf Control zugraufen per Schleife?
 
Hallo,

habe diesen Code eben mit Delphi 2005 VCL.NET getestet und er lässt sich kompilieren:
Delphi-Quellcode:
var
  i: integer;
begin
  for i := 0 to 3 do
  begin
    (FindComponent('Button' + (IntToStr(i))) as TButton).Visible := false
  end;
end;
oder arbeitest Du mit WinForms?

mfG
mirage228

Robert_G 30. Jun 2005 20:52

Re: Auf Control zugraufen per Schleife?
 
Zitat:

Zitat von Taladan
Das gepostete Beispiel funtkionert nicht bei .Net anwendungen

Zum Glück auch. Solchen Newbie-Kram wie FindComponent haben sie erst wieder in .Net 2.0 (2.0 ist enorm VB-Noob verseucht :zwinker: ) eingeführt... :?
was du willst ist wahrscheinlich:
Delphi-Quellcode:
class procedure DingsBums.SetChildrenVisibility(parent :Control; visible :Boolean);
var
  Control : Control;
begin
  for Control in parent.Controls do
    Control.Visible := visible;
Habe ich zwar nicht mit D.Net gestestet, aber in dem Punkt dürfte die Syntax beider Pascal.Net gleich sein. ;)

Taladan 1. Jul 2005 22:06

Re: Auf Control zugraufen per Schleife?
 
Zitat:

Zitat von Robert_G
Delphi-Quellcode:
class procedure DingsBums.SetChildrenVisibility(parent :Control; visible :Boolean);
var
  Control : Control;
begin
  for Control in parent.Controls do
    Control.Visible := visible;

Leider kann ich mit diesen beispiel rein gar nichts anfangen...

MathiasSimmack 2. Jul 2005 07:02

Re: Auf Control zugraufen per Schleife?
 
In welcher Hinsicht? Verstehst du es nicht? Oder lässt es sich nicht kompilieren?
Du musst solche Informationen auch angeben, :roll:, weil man dir sonst nicht helfen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz