AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Event mit eigendem Sender aufrufen

Ein Thema von Zelosfan · begonnen am 11. Jan 2011 · letzter Beitrag vom 11. Jan 2011
Antwort Antwort
Zelosfan

Registriert seit: 14. Jun 2010
5 Beiträge
 
Delphi 2010 Architect
 
#1

Ein Event mit eigendem Sender aufrufen

  Alt 11. Jan 2011, 16:46
Delphi-Version: 2010
Also mein Problem ist ,dass ich ein Hover-Image habe und wenn ich darauf klicke(es folgt "praktisch" meinem Mauszeiger => Feldersystem) soll es den Klick auf das darunte liegende Feld projezieren habe mir also gedacht ich schreibe den aufruf ,auf das jeweilige Feld unter dem HoverImage, beim entern des Mauszeigers über das Feld neu:
Delphi-Quellcode:
procedure TGame.OnFieldEnter(Sender: TObject);
...
begin
...
  Game.HoverImage.OnClick := (Sender as TField).OnClick(Sender);
...
end;
Dabei ist aber das Problem ,dass ich bei TNotifyEvent meinen Sender nicht selber angeben darf
[DCC Fehler] E2010 Inkompatible Typen: 'TNotifyEvent' und 'procedure, untyped pointer or untyped parameter' (Gleiches Problem ,wenn ich die resultierende Prozedur aus TField.OnClick direkt aufrufe)
sondern nur so:
  Game.HoverImage.OnClick := (Sender as TField).OnClick; Aber dann habe ich das HoverImage als Sender ._. wobei logischerweise das Feld als Sender übergeben werden soll.


Hatte mit dieser Problemmatik bis jetz noch nichts zu tun und ich hoffe jemand hat eine Lösung dafür

Danke schonmal für jeden Vorschlag ^^

Geändert von Zelosfan (11. Jan 2011 um 16:56 Uhr) Grund: Fehlermeldung ergänzt
  Mit Zitat antworten Zitat
MondiBob

Registriert seit: 5. Jul 2010
23 Beiträge
 
#2

AW: Ein Event mit eigendem Sender aufrufen

  Alt 11. Jan 2011, 17:19
Also ich hoffe, dass ich dein Problem richtig verstanden habe, aber so wie ich das verstanden habe soll bei dem Click auf dein TGame ein Click auf das HoverImage gemacht werden.
Game.HoverImage.OnClick := (Sender as TField).OnClick; Damit weißt du dem OnClick Event aber nur eine Procedure zu, die dabei ausgeführt werden soll, also brauchst du. Bei nem Button geh:
Game.HoverImageClick(Sender) Geht soweit ich weiß aber nur, wenn bei OnClick schon eine Methode zugewiesen wurde.
  Mit Zitat antworten Zitat
Zelosfan

Registriert seit: 14. Jun 2010
5 Beiträge
 
Delphi 2010 Architect
 
#3

AW: Ein Event mit eigendem Sender aufrufen

  Alt 11. Jan 2011, 17:49
Ich möchte bei dem Hovern über ein Feld den Parameter von der resultierenden Prozedur aus dem Klick (der ausgeführt wird wenn man auf das HoverImage klickt) fest angeben.

Delphi-Quellcode:
procedure TGame.OnFieldEnter(Sender: TObject);
...
begin
...
  Game.HoverImage.OnClick := (Sender as TField).OnClick(Sender);
...
end;
bzw:
Delphi-Quellcode:
procedure TGame.OnFieldEnter(Sender: TObject);
...
begin
...
  Game.HoverImage.OnClick := Game.OnFieldClick(Sender); // resultierende Prozedur die hinter dem OnClick des Feldes steckt
...
end;

Geändert von Zelosfan (11. Jan 2011 um 17:51 Uhr)
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Ein Event mit eigendem Sender aufrufen

  Alt 11. Jan 2011, 18:18
Ich würde sagen
Game.HoverImage.OnClick:= Game.FieldClick; und in der Procedur
Delphi-Quellcode:
procedure TGame.Field.OnClick(Sender: TObject);
begin
    if Sender = ????? then

end
ansonsten schwer zu verstehen was Du genau willst!?

oder
Delphi-Quellcode:
procedure TGame.OnFieldEnter(Sender: TObject);
...
begin
...

Game.HoverImageClick(Sender);

end;
gruss alfold

Geändert von alfold (11. Jan 2011 um 18:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:20 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