AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

dynamisch auf Componenten zugreifen

Ein Thema von jangbu · begonnen am 19. Jun 2009 · letzter Beitrag vom 19. Jun 2009
Antwort Antwort
Seite 1 von 2  1 2   
jangbu

Registriert seit: 6. Apr 2006
167 Beiträge
 
Delphi 10.3 Rio
 
#1

dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:01
Hallo,

möchte um nicht alle Label_1 bis Label_99 einzeln initialisieren zu müssen, dies über eine Schleife machen. Wie kann ich die Objekte Label_1 bis Label_99 dynamisch ansprechen?

Delphi-Quellcode:
for i:=1 to 99
  label + '_' + IntToStr(i).Text = 'blabla';

???
[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:02
Hi,

schau Dir mal Delphi-Referenz durchsuchenFindComponent an.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:04
Bevor wieder jemand mit FindComponent kommt: pack Dir die Labels in ein Array oder eine TObjectList und arbeite das/die dann ab. Wenn Du eine TObjectList verwendest, denke aber daran, OwnsObjects auf false zu setzen.

[edit] Zu spät [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
jangbu

Registriert seit: 6. Apr 2006
167 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:15
danke!

jangub
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:22
Falls die Labels alle auf der selben Komponente liegen (Form, Panel, etc.) gehts auch so:

Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to ComponentCount -1 do
  begin
    if Components[i] is TLabel then
      (components[i] as TLabel).Text := 'blubb';
  end;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:29
Stehen für den Benutzer wichtige Informationen in den Labels?
Falls ja, dann nimm TEdit mit ReadOnly=True anstelle der Labels.

Vorteil für den Benutzer: er kann Texte markieren und kopieren.

Es gibt leider so viele ungeschickte Programme, die z.B. Hypherlinks, Seriennummern, usw anzeigen und der arme Benutzer muss alles abschreiben.
Bestes Beispiel ist das Infofenster des Internet Explorer.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 15:31
Zitat von Andreas L.:
Falls die Labels alle auf der selben Komponente liegen (Form, Panel, etc.) gehts auch so:

Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to ComponentCount -1 do
  begin
    if Components[i] is TLabel then
      (components[i] as TLabel).Text := 'blubb';
  end;
end;
Wenn Du den Typ schon mit "is" geprüft hast, kannst Du Dir das anschließende "as" sparen. Und der Code geht in Ordnung, wenn es alle Labels betrifft, ansonsten geht das so nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#8

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 16:02
Zitat von DeddyH:
Wenn Du den Typ schon mit "is" geprüft hast, kannst Du Dir das anschließende "as" sparen.
Du meinst ich sollte dann einen Hardcast TLabel(Components[i]) machen? Wo ist da der Unterschied?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 16:16
Ich will nicht die Hand dafür ins Feuer legen, aber m.W.n. prüft as erneut mit is den Typ ab und wirft im Fehlerfall eine Exception. Ein harter Typecast ist daher vermutlich etwas schneller.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#10

Re: dynamisch auf Componenten zugreifen

  Alt 19. Jun 2009, 16:18
Zitat von DeddyH:
Ich will nicht die Hand dafür ins Feuer legen, aber m.W.n. prüft as erneut mit is den Typ ab und wirft im Fehlerfall eine Exception. Ein harter Typecast ist daher vermutlich etwas schneller.
Kannst Du ruhig tun. So ists nämlich
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 00:45 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