Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi dynamischen Panels Ereignisse zuordnen (https://www.delphipraxis.net/42999-dynamischen-panels-ereignisse-zuordnen.html)

TheAn00bis 27. Mär 2005 12:01


dynamischen Panels Ereignisse zuordnen
 
Hi, Frohe Ostern!

Überschrift sagt glaube ich alles: Ich will den "Panel1" bis "Panel192" die Prozedur "zuweisen" zuordnen, dafür habe ich im OnCreate der Form folgenden Code geschreiben:

Delphi-Quellcode:
for i:=1 to 192 do TPanel(FindComponent('Panel' + IntToStr(i))).OnClick:=zuweisen;
Jetzt kommt diese Fehlermeldung:

Zitat:

Inkompatible Typen: Liste der Parameter ist unterschiedlich
Habe die Suche benutzt, aber ich habe entweder nichts passendes gefunden oder es nicht verstanden.

Nikolas 27. Mär 2005 12:11

Re: dynamischen Panels Ereignisse zuordnen
 
Wie ist denn zuweisen deklariert?

moritz 27. Mär 2005 12:14

Re: dynamischen Panels Ereignisse zuordnen
 
Die Fehlermeldung deutet darauf hin, dass das Ereigenis, dass zu zuweisen willst, andere Paramtere übergibt, als die Funktion, die du zuweist, akzeptiert. Prüf das mal

TheAn00bis 27. Mär 2005 12:16

Re: dynamischen Panels Ereignisse zuordnen
 
Zitat:

Zitat von Toxman
Wie ist denn zuweisen deklariert?


Delphi-Quellcode:
TForm1 = class(TForm)
         procedure zuweisen;
         procedure FormCreate(Sender: TObject);

[...]

procedure TForm1.zuweisen;
begin
[...]
end;
Edit:
Zitat:

Zitat von moritz
Die Fehlermeldung deutet darauf hin, dass das Ereigenis, dass zu zuweisen willst, andere Paramtere übergibt, als die Funktion, die du zuweist, akzeptiert. Prüf das mal

Wie prüf ich das denn? :oops:


EDIT2:

Ach der Sender :D, danke hat sich erledigt:

( procedure zuweisen(Sender: TObject); )

moritz 27. Mär 2005 12:21

Re: dynamischen Panels Ereignisse zuordnen
 
OnClick erfordert eine Prozedur vom Typ TNotifyEvent:
Delphi-Quellcode:
type TNotifyEvent = procedure (Sender: TObject) of object;
Deine zuweisen-Prozedur muss also so aussehen:
Delphi-Quellcode:
TForm1 = class(TForm)
         procedure zuweisen(Sender: TObject);
         procedure FormCreate(Sender: TObject);

[...]

procedure TForm1.zuweisen(Sender: TObject);
begin
  ShowMessage(TPanel(Sender).Name); // So kommst du außerdem an den Namen des auslösenden
                                    // Panels. Mit TPanel(Sender) kannst du auf die Eigen-
                                    // schaften davon zugreifen. Du könnest zum Beispiel im
                                    // Tag des Panels eine ID speichern, etc.
end;
Gruß, Moritz

TheAn00bis 27. Mär 2005 12:36

Re: dynamischen Panels Ereignisse zuordnen
 
Super, danke Moritz! Genau danach wollte ich gerade Fragen! :))


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