Entwickler-Ecke

Sonstiges (Delphi) - ClickUnit schreiben


rizor - Mi 07.03.07 15:40
Titel: ClickUnit schreiben
Hi,

ich möchte eine Unit schreiben, die beim Mausklick auf ein Image die Mouspostion festlegt.
Das Problem ist, dass das rogramm in einer Art Endlosschleife ist.
Ich hatte die Idee am Ende der Schleife eine Abfrage zu machen, ob die maustaste geklickt wird.
Dann soll die Unit Image1Click geöffnet werden und der Klick soll überprüft werden.

Wie kann man da machen?


mkinzler - Mi 07.03.07 15:47

Du kannst die Eventproperty auf eine Methode in dieser Unit setzen.


rizor - Mi 07.03.07 15:54

Wie meinst du das?
Damit kann ihc nichts anfangen.


bs-Hobbit - Mi 07.03.07 15:56

Bin mir nicht sicher, ob ich 100% verstanden habe, was genau du machen willst, aber vllt hilft dir das hier weiter:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
// Get mouse positon

procedure TForm1.Button1Click(Sender: TObject);
var
  MausPos: TPoint;
begin
  GetCursorPos(MausPos);
  label1.Caption := IntToStr(MausPos.x);
  label2.Caption := IntToStr(MausPos.y);
end;

// Set mouse position to (x,y)

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetCursorPos(600600);
end;

// Simulate a double click on a panel
// Einen Doppelklick auf einen Panel simulieren
SendMessage(Panel1.Handle, WM_LBUTTONDBLCLK, 1010)


rizor - Mi 07.03.07 16:07

Nee,
das meine ich nicht.
Es soll die Endlosschleife beendet werden wenn auf einen Bereich des Images geklickt wird.


Fighter#1 - Mi 07.03.07 16:25

Also die Endlosschleife machst du dann mit

Repeat Until klick=True;

Die Boolsche Variable klick steht im public bereich.
Beim OnClick Ereignis des Image schreibst du rein Klick:=True;


rizor - Mi 07.03.07 16:33

Funktioniert die OnClick sache?
Wenn das Programm in einer endlosschleife ist, dann reagiert es doch auf nichts.


Gausi - Mi 07.03.07 16:38

Beschreib mal bitte näher, was du machen willst. Besonders diesen Satz...
user profile iconrizor hat folgendes geschrieben:
Ich hatte die Idee am Ende der Schleife eine Abfrage zu machen, ob die maustaste geklickt wird.
Dann soll die Unit Image1Click geöffnet werden und der Klick soll überprüft werden.
...verstehe ich überhaupt nicht. Wenn das Programm läuft, soll die Unit geöffnet werden und darin der Klick überprüft werden? :gruebel:

Ich würde im OnClick des Images sowas machen

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Image1Click(Sender: TObject);
begin
  TuwasTollesausUnit2;
end;
, wobei TuwasTollesausUnit2 eine Funktion ist, die in Unit2 deklariert und implementiert ist.