Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Panel.OnClick als If-Bedingung. WIE???? (https://www.delphipraxis.net/91915-panel-onclick-als-if-bedingung-wie.html)

Hilfesucher 11. Mai 2007 20:41


Panel.OnClick als If-Bedingung. WIE????
 
He Leute,

ich brache Hilfe bei eine If-Bedingung.
Ich will für etwa 52 Panel eine Procedure schreiben, mit der ich das angeklickte Panel Gelb färbe und beim zweiten klick wieder auf die Standartfarbe.

Damit ich nicht 52 Proceduren schreiben muss wollte ich mit FindCompnent arbeiten, doch dazu muss ich dann auch wissen welches Panel die Procedure gestartet hat.

Mein Versuch war:

Delphi-Quellcode:
var i, Panel_Zahl : integer;
begin
for i := 1 to 52 do
    begin
    if ((Form4.FindComponent('Panel'+IntToStr(i)) as TPanel).OnClick = [b]true[/b])         {Hier ist mein Problem}
    then if (Form4.FindComponent('Panel'+IntToStr(i)) as TPanel).color = clBtnFace
         then (Form4.FindComponent('Panel'+IntToStr(i)) as TPanel).color := clyellow;
         else (Form4.FindComponent('Panel'+IntToStr(i)) as TPanel).color := clBtnFace;
    end;
end;
Kann mir jemand helfen?


MsfG Hilfesucher

.chicken 11. Mai 2007 20:48

Re: Panel.OnClick als If-Bedingung. WIE????
 
Also wenn mich nicht alles täuscht, dann kannst du doch beim FormCreate mit einer for..to Schleife den Panels eine Prozedur zuweisen, und dazu erstellst du dann halt deine gewünschte.

z.B. so:
Delphi-Quellcode:
for i := 1 to 52 do
  F(orm4.FindComponent('Panel' + IntToStr(i)) as TPanel).OnClick := DeineProzedur;
Hoffe ich verzapf da nun keinen Müll ;-) Und das ist das was du möchtest!

OregonGhost 11. Mai 2007 20:49

Re: Panel.OnClick als If-Bedingung. WIE????
 
Die Eventhandler haben einen Parameter Sender vom Typ TObject. Das ist der Auslöser des Events, also in dem Fall dein Panel. Kannst du auf TPanel casten.

raiguen 11. Mai 2007 20:58

Re: Panel.OnClick als If-Bedingung. WIE????
 
und so sieht die Prozedure zum Farbwechsle beim Click aus
Delphi-Quellcode:
procedure DeineProzedure(Sender: TObject)
begin
  if (Sender as TPanel).Color = clSilver then
    (Sender as TPanel).Color := clYellow
  else
    (Sender as TPanel).Color := clSilver;
end;


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