AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Label-Array: Verwaltung und Nutzung einzelner Labels?

Label-Array: Verwaltung und Nutzung einzelner Labels?

Ein Thema von Kasch · begonnen am 7. Aug 2006 · letzter Beitrag vom 7. Aug 2006
Antwort Antwort
Kasch

Registriert seit: 12. Nov 2005
49 Beiträge
 
#1

Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:39
Hallo,

ich wollte ganz harmlos ein Array aus 20 Labels erstellen und diese halt dann bearbeiten (Hintergrundfarbe, Caption etc).
Nur wie geht das?
ich habe zwar mit
Delphi-Quellcode:
var
datLabels1 : array[1..23] of TLabel;
ein array errichtet, dennoch kann ich keinem Label in der Form den Namen datLabels1[1] geben.
was mache ich falsch?
Vielen Dank
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:45
ähm...

Delphi-Quellcode:
for i := 0 to high(datlabels1) do
  begin
    datlabels1[i] := TLalbel.Create(Form1);
    datlabels[i].Parent := Form1;
    datlabels[i].Left := 20;
    datlabels[i].Top := (i+1) * 20;
  end;
Problem?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Kasch

Registriert seit: 12. Nov 2005
49 Beiträge
 
#3

Re: Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:51
und schon vorher mit dem Objektinspektor einrichten und schön formatieren/anordnen/ausrichten geht nicht?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:55
klar...

Delphi-Quellcode:
labels[0] := Label1;
labels[1] := Label2;

//oder intelligent, aber weniger performant
//labels müssen Label1, Label2, Label3 etc. heißen!

for i := 0 to high(labels) do
  labels[i] := FindComponent('Label'+inttostr(i+1)) as TLabel;

//oder noch intelligenter und auch ein bisschen performanter
//dabei werden die controls nur einmal komplett durchgesucht

for i := 0 to ControlCount-1 do
  if copy(Controls[i].Name,1,length('Label')) = 'Labelthen
    labels[strtoint(copy(Controls[i].Name,length('Label')+1,5))] := Controls[i] as TLabel;
EDIT: eins hinzugefügt.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#5

Re: Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:55
Hi,
ich glaube du verwechselst da ein paar Dinge. Ein Name ist nur die Eigenschaft einer Klasse (glaube TControl, kann aber auch was anderes sein). Alle Nachfahren dieser Klasse haben diese Eigenschaft, aber der Name hat nichts mit den Referenzen auf eine Instanz (z.B. ein bestimmtes Label) oder die Lage im Speicher zu tun.
Der Name ist einfach nur ein String. Du kannst ihn verwenden um ein Label eindeutig zu identifieren, Delphi würde da auch eine Adresse oder ein Handle (also ein DWord) reichen. Nur lesen sich 32 Bit Werte nun einmal weniger gut als ein String.
Den Namen kannst du also nicht zuweisen.
Wie man die Label dyn. zur Laufzeit erzeugt hat dir DGL-Luke ja schon gezeigt. Dabei ist natürlich zu beachten, dass es
for i := low(datlabels1) to high(datlabels1) do heißt und nicht
for i := 0 to high(datlabels1) do da dein Array 1 indexiert ist.
Wenn du die Label zur Designzeit erzeugt hast und einem Array zuweisen möchtest, sähe der Weg etwas umständlicher aus, du müsstest explizit jeder Stelle im Array das entsprechende Label zu weisen:
Delphi-Quellcode:
datLabels1[1] := label1; // natürlich durch den Namen des entsprechenden Labels zu ersetzen!
datLabels1[2] := label2;
...
Gruß Der Unwissende

[Edit]
Blöde rote Kästen
[/Edit]
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Label-Array: Verwaltung und Nutzung einzelner Labels?

  Alt 7. Aug 2006, 17:59
Zitat:
Wenn du die Label zur Designzeit erzeugt hast und einem Array zuweisen möchtest, sähe der Weg etwas umständlicher aus,
Nö. Siehe oben. Die Form registriert netterweise alle Child-Komponenten inklusive Name, das kann man dann auch wieder auslesen.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:49 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