AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi in einer schleife eine OnClick-prozedur zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

in einer schleife eine OnClick-prozedur zuweisen

Ein Thema von Lefko · begonnen am 11. Feb 2004 · letzter Beitrag vom 11. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#1

in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 15:07
Hallo Freunde ,

ich hab ein Problem:

Delphi-Quellcode:
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;
Wie kann ich diesem Panel seine OnClick-prozedur zuweisen?

Also bei Panel1
Panel1.OnClick := Panel1click; MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 15:25
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;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 18:46
Nein, da hast du mich etwas falsch verstanden oder ich habe mich ungenau ausgedrückt

Ich meinte, statt folgendem:

Delphi-Quellcode:
Panel1.OnClick := Panel1click;
Panel2.OnClick := Panel2click;
Panel3.OnClick := Panel3click;
...
möchte ich das in einer Zählschleife machen:

Delphi-Quellcode:
for i := 1 to 9 do
 begin
  TPanel('Panel' + IntToStr(i)).OnClick := Panel_i_click; !
 end;
Ich weiss nicht, wie ich das i in den Namen der Prozedur bekomme!

MfG Lefko.
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Neg

Registriert seit: 16. Jan 2004
Ort: Berlin
63 Beiträge
 
Delphi 5 Professional
 
#4

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 19:56
Weise doch einfach allen Panels die selbe OnClick-Methode zu und unterscheide die Panels dann anhand ihres Tags.
Firmly against signatures. And a hypocrite.
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 19:59
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
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#6

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 20:04
Hi.

(FindComponent('Panel' + IntToStr(i)) as TPanel).OnClick das sollte funktionieren, wenn ich mich nicht täusche. Das ist der Ausdruck, in dem das "i" auch mitbenutzt wird.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 20:58
@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?
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#8

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 21:02
nö...leider nicht
  Mit Zitat antworten Zitat
Lefko

Registriert seit: 31. Jul 2003
359 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 21:09
Oh man, was mach ich denn da...

Ich will diese ganzen Schritte:

Delphi-Quellcode:
Panel1.OnClick := Panel1click;
Panel2.OnClick := Panel2click;
Panel3.OnClick := Panel3click;
Panel4.OnClick := Panel4click;
Panel5.OnClick := Panel5click;
Panel6.OnClick := Panel6click;
Panel7.OnClick := Panel7click;
in einer Schleife machen:

Delphi-Quellcode:
for i := 1 to 7 do
 begin
  TPanel('Panel' + IntToStr(i)).OnClick := ??? //hier weiss ich nicht, was da hin soll!
 end;
Soll ich da ('Panel' + IntToStr(i) + click) hinschreiben oder wie kann ich den Namen einer Procedure mit einer Variable drin ordentlich angeben?!

MfG Lefko

PS ansonsten weiss ich nicht, wie ich das noch erklären soll....
Johannes
-=[Nennst du meinen Namen, bin ich schon nicht mehr da]=-
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: in einer schleife eine OnClick-prozedur zuweisen

  Alt 11. Feb 2004, 21:19
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:
if Sender = Panel1 then
begin

end else
If Sender = Panel2 then
begin
[...]
Ist genau so übersichtlich wie 7 OnClickproceduren
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 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