AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Prism Zugriff auf Labels auf unterschiedlichen Panels
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf Labels auf unterschiedlichen Panels

Ein Thema von gfjs · begonnen am 16. Sep 2006 · letzter Beitrag vom 17. Sep 2006
Antwort Antwort
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#1

Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 05:26
Guten Morgen.

Auf meinem Formular befinden sich mehrere Panels mit wiederum mehreren Labels. Wie kann ich in einer Schleife alle diese Labels durchlaufen? Ich dachte an die Möglichkeit, auf die Labels über die Namen (z.B. Label1 bis Label99) zuzugreifen, etwa in der Form:
Delphi-Quellcode:
for i := 1 to 99 do
begin
  LabelName := 'Label' + i.ToString;
  ???
end;
Leider habe ich nicht herausgefunden, wie ich von dem String "LabelName" zu dem passenden Label komme. Oder gibt es eine andere Möglichkeit, das zu realisieren?

Vielen Dank im Voraus.

Gruß Jürgen.
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#2

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 08:19
Unter Win32 gibt es die Methode Hier im Forum suchenFindComponent, da ich von .Net keine Ahnung habe müsstest du mal gucken ob du das auch in .Net verwenden kannst. Alternativ könntest du alle Labels in ein Array packen, und dann einfach per Schleife durchgehen.
Delphi-Quellcode:
Labels : array [0..98] of TLabel;

for i := 1 to 99 do
begin
  Labels[i] := 'Label' + i.ToString;
end;
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 08:24
@ Balu der Bär

Vielen Dank! - Ich werd's ausprobieren. Aber ich glaube nicht, dass es mein Problem löst. Die Labels sind auf unterschiedlichen Panels, so dass ich eben nicht so ohne weiteres in einer Schleife auf alle Labels zugreifen kann. - Zumindest weiß ich (noch) nicht wie. Außerdem wurde nur das erste Panel mit den darin enthaltenen Labels im OI angelegt. Dann wurde dieses Label zweimal kopiert und die sich daraus ergebende Gruppe noch zweimal. Daurch ist die fortlaufende Numerierung, die Delphi automatisch macht, total durcheinander geraten.

Schönes Wochenende.

Gruß Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 09:21
Du könntest die Labels manuell erzeugen und dnn die Reerenzen in einen Array abspeichern.
Markus Kinzler
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#5

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 09:28
Delphi-Quellcode:
Labels : array[0..98] of TLabel;

for i := 0 to 98 do
begin
 Labels[i] := TLabel.Create(self);
 Labels[i].Caption := 'Label' + i.ToString;
 Labels[i].Top := i + 3;
 Labels[i].Left := i + 4;
 //etc
end;
  Mit Zitat antworten Zitat
volkerw

Registriert seit: 28. Nov 2005
Ort: Witten
26 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 16. Sep 2006, 09:39
Hallo,
so erreichst Du garantiert jedes Label auf beliebigen Panels:
Delphi-Quellcode:
procedure LabelsOnPanel(Pan: TPanel);
var
  i: integer;
begin
  for i := 0 to Pan.ControlCount - 1 do
    if Pan.Controls[i] is TLabel then (Pan.Controls[i] as TLabel).Caption :=
    IntToStr(i);
end;
Gruß
Volker
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Zugriff auf Labels auf unterschiedlichen Panels

  Alt 17. Sep 2006, 06:01
@ mkinzler

Die Labels alle manuell zu erzeugen wäre sehr mühselig, da es sich um einige Hundert Labels handelt. Ich habe das so gelöst, dass ich die Panels mit den darauf befindlichen Labels mehrmals kopiert habe, aber dadurch kommt die Nummerierung der Panels und Labels total durcheinander - zwar mit System aber trotzdem für meine Zwecke nicht brauchbar.

@ Balu der Bär

Diese Möglichkeit scheint mir für meine Zwecke gut geeignet. Mein Problem ist nämlich, dass ich ein großes Panelhabe, auf dem sich weitere Panels befinden und auf diesen Panels wiederum eine Gruppe von Panels mit den Labels, auf die ich zugreifen will.

@ Volker

So, wie mein Formular jetzt aufgebaut ist, wird Deine Lösung für mich etwas unübersichtlich, aber sie hat mich auf eine Idee gebracht, wie ich mein Formular anders gestalten kann.

Ich danke Euch allen für Eure rege Beteiligung und für die Vorschläge. Jetzt verschwinde ich erst mal für 4 Tage nach Rom und dann werde ich mich damit auseinander setzen.

Euch allen noch einen schönen Sonntag.

Gruß Jürgen
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:08 Uhr.
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