Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Eigenschaft vorhanden? (https://www.delphipraxis.net/47782-eigenschaft-vorhanden.html)

LoL 16. Jun 2005 09:29


Eigenschaft vorhanden?
 
Hi
Ich laufe alle Komponenten auf meinem Form durch. Nun will ich wenn die Komponente beispielsweise die Eigenschaft "Caption" hat dieser Caption etwas zuweisen.
In diesem Thread steht was von

Delphi-Quellcode:
IsPublishedProp(FindControl(Handle), Property) then
aber dazu brauch ich ja das Handel und das hab ich nicht. Weis einer Rat?

marabu 16. Jun 2005 09:33

Re: Eigenschaft vorhanden?
 
Hallo Christoph,

du hast doch das Control schon - warum willst du noch FindControl(Handle) aufrufen?

Grüße vom marabu

LoL 16. Jun 2005 09:40

Re: Eigenschaft vorhanden?
 
Ja aber wenn ich alle Komponenten durchlaufe weis ich ja nicht "was es ist". Da aber From1.Components TComponent zurückliefert weis ich ja nicht ob die Komponente Caption hat.

jim_raynor 16. Jun 2005 09:42

Re: Eigenschaft vorhanden?
 
Und Was erwartet der erste parameter von IsPublishedProp? Bestimmt TComponent oder ein Vorfahre. Also funktionierts doch ganz einfach:

Delphi-Quellcode:
for i:=0 to ComponentCount-1
begin
  if IsPublishedProp(Components[i], 'Caption') then
end;

TeronG 16. Jun 2005 09:45

Re: Eigenschaft vorhanden?
 
also wenn du nur bei bestimmten Objecten was ändern wills könntest du das so machen :
Delphi-Quellcode:
  for I:=0 to ComponentCount-1 do
    if Components[I] is Tedit then
      (Components[i] as Tedit).Text := 'irgendwas';
wenn du bei allen Objecten die ein Caption haben was machen möchtest hab ich keine Idee (atm ^^)

LoL 16. Jun 2005 09:48

Re: Eigenschaft vorhanden?
 
Argh ich weis nicht was ich da für Problem hatte :wall: . Irgendwie aufm Schlach gestanden :wink:
@TeronG: Das hatte ich auch schonmal aber da ich sehr viele unterschiedliche Komponenten habe die Caption haben würde meine "If Komponente = Klasse"-Liste ziemlich lang werden. Es funktioniert zwar ist aber nicht schön.

TComponent hat die Eigenschaft Caption ja nicht. Deshalb geht dann ja Components[0].Caption nicht.
Wie kann ich nun "gewaltsam" Caption aufrufen?

marabu 16. Jun 2005 09:51

Re: Eigenschaft vorhanden?
 
Delphi-Quellcode:
var
  i: integer;
  c: TComponent;
begin
  for i := 0 to ComponentCount - 1 do begin
    c := Components[i];
    if IsPublishedProp(c, 'Caption') then
      SetStrProp(c, 'Caption', 'OK');
  end;
end;
marabu

LoL 16. Jun 2005 09:56

Re: Eigenschaft vorhanden?
 
Wunderbar :thumb:
Das ist genau das was ich gesucht habe.
Dank euch für eure schnelle Hilfe ging ja mal wieder echt flott :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 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