Hallo Michael,
bei NET musst Du nicht nach
Components suchen, sondern nach
Controls: Jedes Control speichert die Elemente, die es enthält.
Vorteil: Du kannst (z.B. innerhalb eines Panel) alle unmittelbar darin enthaltenen Elemente direkt suchen und bearbeiten.
Nachteil: Wenn alle Controls eines Formulars benötigt werden, muss immer rekursiv gearbeitet werden. Konkret (in C#-Schreibweise):
Code:
for (int i0 = 0; i0 < MyPanel.Controls.Count; i0++) {
if (MyPanel.Controls[x0] is Label) {
MyPanel.Controls[x0].Visible = true;
}
}
// oder direkt für ein bestimmtes Control:
MyPanel.Controls["Label8"].Visible = true;
Je nachdem, was Du ansonsten erreichen möchtest, ist SirThornberry's Vorschlag besser, die Labels erst zur Laufzeit zu erzeugen. Wie Du das machst, steht im Abschnitt "Vom Designer generierter Code". Das kannst Du in eigene Prozeduren übertragen, etwa so:
Code:
private void CreateLabel(string name, string caption, int left, int top) {
// deklarieren und erzeugen
Label newLabel = new Label();
// Eigenschaften zuweisen
newLabel.Name = name;
newLabel.Text = caption;
newLabel.Width = 60;
newLabel.Height = 13;
newLabel.Left = left;
newLabel.Top = top;
// dem Panel oder Form zuweisen
MyPanel.Controls.Add(newLabel);
}
Viel Erfolg! Jürgen
PS. Ich hoffe, es gelingt Dir selbst, den Code in Delphi-Schreibweise zu übersetzen. Wenn ich das machen will, dauert es länger und dürfte fehlerhaft sein.