Autor Beitrag
Johannes1989
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:01 
Hallo,

Also ich habe eine Prozedur:
TForm1.ImageMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); und dann halt den inhalt der prozedur.

Und eine zweite prozedur, ein button.

Ich will, dass beim klicken auf den button die prozedur geöffnet wird.
normalerweise dekleriere ich prozeduren doch so:

procedure TForm1.Button1Click(Sender: TObject);
VAR: s:integer;

begin

(...)
imagemousedown(Sender,button,shift,x,y);

end;

aber das nimmt der compiler nicht, woran liegt das denn?

Danke schonmal,
johannes
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.12.08 22:09 
Zitat:
imagemousedown(Sender,button,shift,x,y);

Woher soll der Compiler denn wissen, was er für button, shift, x und y übergeben soll? Du kannst Dir entweder entsprechende Variablen definieren oder gleich Konstanten übergeben, damit sollte es gehen.
Johannes1989 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:15 
Ja okay, das war sehr dumm...

Aber:

Also X und Y kann ich übergeben, aber Sender:Tobject, Button:TmouseButton und Shift ?!

Shift ist doch nur eine Taste, der Sender, wie soll ich den übergeben. Und der Button? Das heißt doch nur mausklicken.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.12.08 22:18 
Versuch es mal testhalber so:
ausblenden Delphi-Quelltext
1:
imagemousedown(Sender,mbLeft,[],0,0);					
Johannes1989 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:22 
Boah vielen vielen vielen vielen Dank.... ich sitz da jetzt seit knapp 2 stunden dran. und dabei gehts so einfach...

mit dem [] bei der übergabe, sag ich da, dass ich nichts übergeben will. oder was drücke ich damit aus?

Danke nochmal,
johannes
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 03.12.08 22:28 
Korrekt.
DOH hat folgendes geschrieben:
The event handlers for OnMouseDown and OnMouseUp can respond to left, right, or center mouse button actions, with or without shift keys. Shift keys are Shift, Ctrl, and Alt. X and Y are the pixel coordinates of the mouse pointer in the client area of the Sender.
Johannes1989 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:29 
Vielen vielen Dank an euch beide :)
Johannes1989 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:55 
Ach ne... doch nich so schön einfach wie erhofft, nämlich:

Wenn ich bei der Buttonprozedur das hier übergebe:
imagemousedown(Sender,mbLeft,[],0,0);

Ich will bei der imagemousedown sache ja nur wissen, wo auf dem feld die maus geklickt hat.
Wenn ich als werte für X,Y aber 0,0 übergebe berechnet die prozedur die nich mehr, sondern behält die 0,0, bei.

Kann ich das irgendwie umgehn?

johannes^^
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 03.12.08 22:57 
Naja, wenn du die Funktion selbst aufrufst, hat ja die Maus nicht geklickt, also gibt es auch keine Koordinaten.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Johannes1989 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mi 03.12.08 22:59 
Da merkt man mal, wie höchst sinnvoll mein programm doch ist -.-

dankeschön nochmal ^^