Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Variable Formularelemente (https://www.delphipraxis.net/102148-variable-formularelemente.html)

blackmice 24. Okt 2007 08:51


Variable Formularelemente
 
Hallo,

ich habe folgendes Problem. Ich habe 64 Panels auf meinem Bildschirm und möchte bei einem davon die Farbe ändern. Die Nummer dieses Panels ergibt sich allerdings erst im Programmablauf.
Gib es eine einfacherer Methode das richtige Panel zu verändern ausser

if i := 1 then Form1.Panel1.Color := clGreen;
if i := 2 then Form1.Panel2.Color := clGreen;
...
if i := 64 then Form1.Panel64.Color := clGreen;

Das fände ich doch ziemlich langwierig.

Gruß
Blackmice

Phoenix 24. Okt 2007 08:52

Re: Variable Formularelemente
 
Hier im Forum suchenFindComponent
Bitte das nächste mal erst die Suchfunktion bemühen. Das hatte wir sicher schon ein paar hundert mal...

Achso,.. Edit nachtrag: Herzlich Willkommen in der DP ;-) :dp:

blackmice 24. Okt 2007 08:59

Re: Variable Formularelemente
 
Sorry, aber FindComponent funktioniert nicht. Hab ich schliesslich schon ausprobiert.

TComponent wird zwar vielleicht zurückgeliefert, hat aber keine Eigenschaft Color. Jedenfalls komme ich dann an der Stelle nicht weiter.

leddl 24. Okt 2007 09:09

Re: Variable Formularelemente
 
Zitat:

Zitat von blackmice
Sorry, aber FindComponent funktioniert nicht. Hab ich schliesslich schon ausprobiert.

Dann hast dus aber nich besonders gründlich ausprobiert :zwinker: Bei mir und anderen funktioniert es schließlich :stupid:
Zitat:

Zitat von blackmice
TComponent wird zwar vielleicht zurückgeliefert, hat aber keine Eigenschaft Color. Jedenfalls komme ich dann an der Stelle nicht weiter.

Klar, daher solltest du ja die gefundene TComponent auch noch auf den entsprechenden Typ prüfen und dann casten :zwinker: Steht aber auch in den diversen Threads zu dem Thema ;)

DeddyH 24. Okt 2007 09:12

Re: Variable Formularelemente
 
Delphi-Quellcode:
procedure TForm1.ComboBox1Change(Sender: TObject);
var Comp: TComponent;
begin
  Comp := FindComponent('Panel' + ComboBox1.Items[ComboBox1.ItemIndex]);
  if Assigned(Comp) and (Comp is TPanel) then
    TPanel(Comp).Color := clGreen;
end;

blackmice 24. Okt 2007 09:46

Re: Variable Formularelemente
 
Ah danke, jetzt geht es. Mir fehlte der Hinweis mit TPanels(comp). Und den hatte ich in den Threads die ich bisher gelesen habe zu FindComponent auch nicht gefunden.

leddl 24. Okt 2007 09:51

Re: Variable Formularelemente
 
Zitat:

Zitat von blackmice
Und den hatte ich in den Threads die ich bisher gelesen habe zu FindComponent auch nicht gefunden.

Also erstmal schön, dass es jetzt klappt und dir geholfen werden konnte, aaaaaber: :gruebel: ohne Casten ist FindComponent doch kaum zu gebrauchen, daher kann ich ehrlich gesagt nicht glauben, dass das nirgendwo zu sehen gewesen sein sollte :zwinker:

Aber genug davon (ich muss auch immer auf allem rumreiten :lol:), hauptsache es geht jetzt ;)

blackmice 24. Okt 2007 09:54

Re: Variable Formularelemente
 
Ja ja, immer diese Neulinge, die hier reinstolpern und von nix ne Ahnung haben, furchtbar :lol:

Vielen Danke jedenfalls

mkinzler 24. Okt 2007 10:06

Re: Variable Formularelemente
 
Zitat:

Zitat von blackmice
Ja ja, immer diese Neulinge, die hier reinstolpern und von nix ne Ahnung haben, furchtbar :lol:

Vielen Danke jedenfalls

Nein das Forum lebt doch gerade von den Fragen. Wären hier nur Leute, die Fragen beantworten, wäre hier tote Hose. :zwinker:


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