Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wie kann man mit Popup (https://www.delphipraxis.net/5167-wie-kann-man-mit-popup.html)

bundy 26. Mai 2003 13:18


Wie kann man mit Popup
 
:coder: Hallo ,wie kann man ein POPUP auf eine Komp. beziehen.
z.b

POPUP bei dbgrid1 dann i:=1
POPUP bei dbgrid2 dann i:=2

wie kann ich dem popup sagen oder abfragen welchen Handel es hat .
:firejump: :firejump: :firejump: :firejump: :firejump: :firejump:

sakura 26. Mai 2003 13:29

Wenn das Pop "gestartet" wird, kannst Du im Ereignis OnPopup den Sender abfragen.
Delphi-Quellcode:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
  if Sender = StringGrid1 then
    I := 1
  else if Sender = StringGrid2 then
    I := 2
  else
    I := -1;
end;
...:cat:...

bundy 26. Mai 2003 14:10

Ich habe noch ein Tabsheet wo das grid drinnen liegt.
das funzt nicht mit sender.

Stanlay Hanks 26. Mai 2003 15:29

Müsste aber doch eigentlich trotzdem gehen. Weil über Sender kann man die Komponente die das Popup aufgerufen hat, ja identifizieren und da isses doch egal, ob die jetz auf nem Tabsheet liegt oder sonst wo.

oki 26. Mai 2003 16:18

Hi Leute,

nicht, dass ihr in die falsche Richtung lauft. Der Parameter Sender gibt den Sender an der das Ereignes gesendet hat. Somit ist hier der Sender vom Typ TPopupMenu und nicht die Kompo auf der das Menu liegt.

Auf deutsch sagt uns das, habt ihr mehrere Menu's die auf die gleiche Ereignisbehandlungsmethode zeigen, könnt ihr über Sender das Menu ermitteln, welches euch das Ereignis gesendet hat.

Delphi-Quellcode:
 procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
  IF TPopupMenu(Sender).Name = Menu1 then ....
  IF TPopupMenu(Sender).Name = Menu2 then ....
end;
Gruß oki

Stanlay Hanks 26. Mai 2003 16:24

:wall: Danke für die Berichtigung...Ich muss mir angewöhnen, das was ich schreibe auch auszuprobieren. :wall:

oki 27. Mai 2003 07:27

Hi Stanlay,

kein Streß, als ich eure Beiträge gelesen hab bin ich auch erst mal ins schleudern gekommen und war mir gar nicht mehr sicher was nun richtig ist. Vorallem weil auch noch Sankura als Moderator in diese Kerbe haut. Kenerell kann dieses Ereignis ja "jeder" aufrufen. Dann klappt die Abfrage über TPopupMenu(Sender) natürlich nicht. Generell sollte man natürlich vorher den Sender prüfen von welchem Typ er ist!!!!! :witch:

Denn auch das müßte möglich sein:

Delphi-Quellcode:
PopupMenu1Popup(self);
wobei self jeder möglich Object-Typ sein kann. Hier würde quasi nicht über die rechte Moustaste sondern aus dem Programm heraus zur Laufzeit das Ereignis aufgerufen werden.

Also Vorsicht!!!

Gruß oki


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