![]() |
in einer schleife eine OnClick-prozedur zuweisen
Hallo Freunde :hi: ,
ich hab ein Problem:
Delphi-Quellcode:
Wie kann ich diesem Panel seine OnClick-prozedur zuweisen?
procedure Tform1.ResetPanels;
var i : byte; begin for i := 1 to 9 do begin TPanel('Panel' + IntToStr(i)).BevelInner := bvRaised; TPanel('Panel' + IntToStr(i)).Font.Color := clblack; TPanel('Panel' + IntToStr(i)).OnClick := ??????????; end; end; Also bei Panel1
Delphi-Quellcode:
MfG Lefko.
Panel1.OnClick := Panel1click;
|
Re: in einer schleife eine OnClick-prozedur zuweisen
Hmmm....
Hai Lefko, wo ist denn das Problem? Du hast dir deine Frage doch schon beantwortet ;-)
Delphi-Quellcode:
procedure myPanelClick (sender : TObject); begin end; proceudre InitSystem; begin Panel1.OnClick := myPanelClick; end; |
Re: in einer schleife eine OnClick-prozedur zuweisen
Nein, da hast du mich etwas falsch verstanden oder ich habe mich ungenau ausgedrückt ;)
Ich meinte, statt folgendem:
Delphi-Quellcode:
möchte ich das in einer Zählschleife machen:
Panel1.OnClick := Panel1click;
Panel2.OnClick := Panel2click; Panel3.OnClick := Panel3click; ...
Delphi-Quellcode:
Ich weiss nicht, wie ich das i in den Namen der Prozedur bekomme! :wall:
for i := 1 to 9 do
begin TPanel('Panel' + IntToStr(i)).OnClick := Panel_i_click; ! end; MfG Lefko. |
Re: in einer schleife eine OnClick-prozedur zuweisen
Weise doch einfach allen Panels die selbe OnClick-Methode zu und unterscheide die Panels dann anhand ihres Tags.
|
Re: in einer schleife eine OnClick-prozedur zuweisen
Ne, das ist mir zu umständlich, ich dachte nur, ich könnte den QT verkürzen, indem ich diese Zuweisung in einer Schleife mache...
Wenn man nun die Schleifenvariable nicht in den Namen der procedure einbauen kann, muss ich es eben wieder wie vorher eins nach dem anderen machen .. :( MfG Lefko |
Re: in einer schleife eine OnClick-prozedur zuweisen
Hi.
Delphi-Quellcode:
das sollte funktionieren, wenn ich mich nicht täusche. Das ist der Ausdruck, in dem das "i" auch mitbenutzt wird.
(FindComponent('Panel' + IntToStr(i)) as TPanel).OnClick
Man liest sich, Stanlay :hi: |
Re: in einer schleife eine OnClick-prozedur zuweisen
@SH: Jaa, ich denke, DAS ist der Teil, der bei mir auch funktioniert ;)
Ich meine den NAMEN der procedure, die zugewiesen wird. einem Panel soll Panel1click zugewiesen werden, dem nächsten dann Panel2click und in der Schleife eben Paneli die Procedure Paneliclick ! Ist das jetzt verständlich? |
Re: in einer schleife eine OnClick-prozedur zuweisen
nö...leider nicht :oops:
|
Re: in einer schleife eine OnClick-prozedur zuweisen
Oh man, was mach ich denn da... :?
Ich will diese ganzen Schritte:
Delphi-Quellcode:
in einer Schleife machen:
Panel1.OnClick := Panel1click;
Panel2.OnClick := Panel2click; Panel3.OnClick := Panel3click; Panel4.OnClick := Panel4click; Panel5.OnClick := Panel5click; Panel6.OnClick := Panel6click; Panel7.OnClick := Panel7click;
Delphi-Quellcode:
Soll ich da ('Panel' + IntToStr(i) + click) hinschreiben oder wie kann ich den Namen einer Procedure mit einer Variable drin ordentlich angeben?!
for i := 1 to 7 do
begin TPanel('Panel' + IntToStr(i)).OnClick := ??? //hier weiss ich nicht, was da hin soll! end; MfG Lefko PS ansonsten weiss ich nicht, wie ich das noch erklären soll.... :roll: |
Re: in einer schleife eine OnClick-prozedur zuweisen
Erklärt isses eignetlich schon verständlich. Eigentlich ist es nicht möglich weil du OnClick eine Adresse der procedure zuweist. Ich würde wie schon erwähnt auch allen die gleiche procedure zuweisen und dann in der Procedure unterscheiden. Und umständlich ist das auch auf keinen Fall. Einfach
Delphi-Quellcode:
Ist genau so übersichtlich wie 7 OnClickproceduren
if Sender = Panel1 then
begin end else If Sender = Panel2 then begin [...] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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