![]() |
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:
Kann mir jemand helfen?
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; MsfG Hilfesucher |
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:
Hoffe ich verzapf da nun keinen Müll ;-) Und das ist das was du möchtest!
for i := 1 to 52 do
F(orm4.FindComponent('Panel' + IntToStr(i)) as TPanel).OnClick := DeineProzedur; |
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.
|
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 17:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz