Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

Robert_G 2. Jul 2005 07:16

Re: Auf Control zugraufen per Schleife?
 
Ich dachte ich greife dein Beispiel auf. ;)
Zitat:

Zitat von Taladan
Delphi-Quellcode:
   for i := 0 to 5 do begin
     button[i].visible := false;
     panel[i].visible := false:
   end;


Taladan 2. Jul 2005 08:49

Re: Auf Control zugraufen per Schleife?
 
Delphi sagt mir aber, das ein ArrayTyp erforderlich ist. Soweit war ich auch schon, das klappt leider nicht.

MathiasSimmack 2. Jul 2005 09:40

Re: Auf Control zugraufen per Schleife?
 
Delphi-Referenz durchsuchenControls ist doch ein Arraytyp. :gruebel: Klappt ja selbst mit CSharp wunderbar:
Code:
private void SetChildrenVisibility(Control parent, bool visible)
{
  foreach(Control control in parent.Controls) {
    control.Visible = visible;
  }
}

this.SetChildrenVisibility(this, false);

Taladan 2. Jul 2005 09:51

Re: Auf Control zugraufen per Schleife?
 
ich nutze jedoch delphi

MathiasSimmack 2. Jul 2005 09:54

Re: Auf Control zugraufen per Schleife?
 
Das habe ich bereits bemerkt. Wenn du aber tatsächlich für das .NET Framework schreibst, und nicht die VCL.NET benutzt, dann ist es letztlich nur eine Frage der anderen Syntax.

MathiasSimmack 2. Jul 2005 10:00

Re: Auf Control zugraufen per Schleife?
 
Ich habe das kurze Codestückchen mal eben kompiliert und die Exe im Reflector betrachtet. Die Umschaltung auf Delphi ergab:
Delphi-Quellcode:
procedure MainForm.SetChildrenVisibility(parent: Control; visible: boolean);
begin
  for control1 in parent.Controls do
  begin
    control1.Visible := visible
  end
end;
Warum jetzt die Variable control1 nirgendwo deklariert wird, kann ich dir aber nicht sagen. :gruebel: Evtl. ein kleines Problem im Programm, denn die VB-Variante scheint korrekt zu sein:
Code:
Private Sub SetChildrenVisibility(ByVal parent As Control, ByVal visible As Boolean)
      Dim control1 As Control
      For Each control1 In parent.Controls
            control1.Visible = visible
      Next
End Sub

Taladan 2. Jul 2005 10:05

Re: Auf Control zugraufen per Schleife?
 
Auch wenn obriges beispiel funtionieren sollte, hilft es nciht weiter. Immerhin will ich nicht alle sondern ausschlißlich ein paar Panels und Buttons sichbar (und andocken) machen.

Robert_G 2. Jul 2005 10:11

Re: Auf Control zugraufen per Schleife?
 
Bevor hier Mathias noch 5-mal sagt, dass es geht und du darauf sagst, dass es nicht geht und ... :freak:

Ich habe deine Problem so aufgefasst, dass du auf ein paar Controls in einer Schleife zugreifen willst:
Zitat:

Ich möchte gerne auf Controls (u. a. auf Buttons und Panels) per schleifen zugreifen.
Könnte man also fast so auffassen. :mrgreen:

Mein kleiner Minischnipdel macht nix anderes als Visible der Controls eines Forms/Panels/TabSheets/whatsoever auf true oder auf false zu setzen.
Die Syntax /IST/ kompatibel zu D.Net auch wenn ich zuviel Stolz habe um es selbst auszuprobieren. ;)
Was Delphi vielleicht nicht schnallt ist das hier:
Delphi-Quellcode:
Control : Control;
auch wenn's dann kkomisch aussieht, benenne die Variable einfach mal um. ;))

Nachtrag:
Delphi-Quellcode:
Auch wenn obriges beispiel funtionieren sollte, hilft es nciht weiter. Immerhin will ich nicht alle sondern ausschlißlich ein paar Panels und Buttons sichbar (und andocken) machen.
Aha! nun kommen wir doch der Sache etwas näher. ;)
Werfe betreffende Controls in einen Container (ArrayList, ControlCollection, ...) und nun kansst du durch den iterieren.

p.s.: Mathias' Code war natürlich falsch. :lol:

MathiasSimmack 2. Jul 2005 10:16

Re: Auf Control zugraufen per Schleife?
 
Zitat:

Zitat von Robert_G
p.s.: Mathias' Code war natürlich falsch. :lol:

Nur wenn man die neue Situation bzw. die neuen Informationen zugrunde legt, an denen ich nun auch teilhaben durfte. :stupid:

Robert_G 2. Jul 2005 10:48

Re: Auf Control zugraufen per Schleife?
 
Zitat:

Zitat von MathiasSimmack
Zitat:

Zitat von Robert_G
p.s.: Mathias' Code war natürlich falsch. :lol:

Nur wenn man die neue Situation bzw. die neuen Informationen zugrunde legt, an denen ich nun auch teilhaben durfte. :stupid:

Wäre immer falsch, außer du bist so krank und deklarierst Control1 als feld des Forms... :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Seite 2 von 3     12 3      

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