AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Alle komponenten eines typs ansprechen?

Ein Thema von pirechner · begonnen am 7. Jan 2005 · letzter Beitrag vom 7. Jan 2005
Antwort Antwort
pirechner

Registriert seit: 29. Jun 2004
36 Beiträge
 
Delphi 7 Professional
 
#1

Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 20:52
frohes neues!
ist es möglich alle komponenten eines typs die sich auf meinem formular befinden, anzusprechen und z.b. die textfarbe bei allen labels auf die gleiche farbe zu setzen?

natürlich ohne, dass ich weiß wie die label heißen und ihre namen selber eintippe?
pi ist Sonntags = 4
  Mit Zitat antworten Zitat
Nillen

Registriert seit: 20. Dez 2004
27 Beiträge
 
#2

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 20:55
Spricht da die Faulheit ?!? ; )
Ich weiss ja nicht wieviele Komponenten du in deinem Prog hast aber es sollte doch möglich sein eine OnCreate
Prozi zu basteln die alle Labels auf eine einheitliche Farbe setzt oder ?

Ich wüsste keine möglichkeit wie man alle Komponenten ansprechen kann
  Mit Zitat antworten Zitat
pirechner

Registriert seit: 29. Jun 2004
36 Beiträge
 
Delphi 7 Professional
 
#3

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:03
das mit den antworten geht hier immer echt schnell!
ich hab die label leider noch alle selber eingefügt per hand .
aber es sind zu viele um alles einzutippen und dann wollte ich es etwas eleganter machen.
pi ist Sonntags = 4
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#4

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:08
Hi - Weis nicht, ob das dein Problem löst:

Code:
var
  i: Byte;
begin
  for i:=0 to Form1.ComponentCount-1 do
  if Form1.Components[i] is TLabel
  then with Form1.Components[i] as TLabel do
  Font.Color:=clRed
end;
Sebastian
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#5

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:10
So kannst du das machen ...

Delphi-Quellcode:
procedure TForm1.Irgendwas;
VAR
  I: Integer;
begin

FOR I := 0 TO form1.ControlCount - 1 DO
BEGIN
  IF (form1.Components[i] IS TLabel)THEN
  With (form1.Components[i] as TLabel) do
  begin
    Caption:='Label1234';
    color:=clRed;
  end; // with

  IF (form1.Components[i] IS TButton)THEN
  With (form1.Components[i] as TButton) do
  begin
    Caption:='Button 1234';
  end; // with


END; // for
end;

  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:11
Mist, wieder zu langsam ...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:14
Zitat von pirechner:
das mit den antworten geht hier immer echt schnell!
ich hab die label leider noch alle selber eingefügt per hand .
aber es sind zu viele um alles einzutippen und dann wollte ich es etwas eleganter machen.
Wie wär's wenn du sie alle markierst und dann im OI das Font (und damit die Font farbe) änderst?

Wenn es per Code gehen soll ist Components als Array of Component dein Freund.
Delphi-Quellcode:
  for i := 0 to pred(ComponentCount) do
    if Components(i) is TLabel then
      with Components(i) as TLabel do
        TLabel(Components(i)).Font.Color := clIrgendWas;
oder in D2005:
Delphi-Quellcode:
var
  Component :TComponent;
begin
  ...
  for Component in Components do
    if Component is TLabel then
      TLabel(Component).Font.Color := clIrgendWas;
  ...
war auch zu langsam, aber ich bin auch im Urlaub. Da darf man langsam sein
  Mit Zitat antworten Zitat
pirechner

Registriert seit: 29. Jun 2004
36 Beiträge
 
Delphi 7 Professional
 
#8

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:33
so jetzt funzt es!
vielen dank für eure schnellen und guten antworten.
aber erst musste ich self.controlcount schreiben da sonst zugriffsverletzungen oder listenüberschreitungen auftraten. hab ich da was falsch verstanden?
pi ist Sonntags = 4
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#9

Re: Alle komponenten eines typs ansprechen?

  Alt 7. Jan 2005, 21:40
Zitat von pirechner:
aber erst musste ich self.controlcount schreiben da sonst zugriffsverletzungen oder listenüberschreitungen auftraten. hab ich da was falsch verstanden?
Nein hast du nicht. Aber schaue mal links und rechts über die Taste [Strg]. Da findest du [Shift] -> macht Text gleich leserlicher.

@Topic
  • Jens verwendete Form1.ControlCount lief aber durch das Array Components.
  • Zweitens heißt dein Formular wohl nicht Form1.
    Form1 hat 5 Controls, dein Form nur 3 -> beim durchlaufen von Control 4 knallt's dann natürlich
  • Drittens sollte man diese ollen globalen Variablen des Form Designers nie im Code benutzen.
Wenn ich eine Weile nicht programmiert habe, werde ich pingelig.
  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 16:07 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