Autor Beitrag
knut333
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Do 29.09.05 16:24 
Hallo. Ich habe ein Image und möchte wie in Paint darauf zeichnen können.

Der Befehl onmousemove zeichnet dabei allerdings die ganze Zeit. Ich will aber, dass nur wenn man die Maustaste gedrückt hält, gezeichnet wird. (alos so wie in Paint). ... wie mache ich das denn?
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: Do 29.09.05 16:36 
Ist relativ einfach
mach in der mousemoveprozedur einfach ein abfrage ob die maustaste gedrückt wurde.
Ich habe das mal vor einiger zeit so gelöst:
In der Mousdown wurde ein variable auf true gesetzt
in der mouseup wieder auf false
in der mousemove wurde nur gezeichnet wenn die Var true ist
FinalFantasy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 127

Windows XP
Delphi 5 Professional, Visual Studio 7 .NET (C#)
BeitragVerfasst: Do 29.09.05 16:37 
Du könntest dir eine Variable anlegen, in der du dir merkst, ob die Maustaste gedrückt ist, und dann zeichnest du im MouseMove nur, wenn die Maustaste auch wirklich gedrückt ist.

Etwa so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
    ButtonPressed := true;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ButtonPressed then begin
     //hier wird dann gezeichnet
  end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
    ButtonPressed := false;
end;

Code nicht getestet!!!

Edit: Ok, war ich mal wieder zu langsam... Na dafür hast du jetzt auch noch ein Codebeispiel ;-)
DarkHunter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 477

Win XP
D3 Prof, D2005 PE
BeitragVerfasst: Do 29.09.05 16:45 
Der Code sollte eigentlich gehen
Noch ein Tip für das Zeichnen:
Zeichne immer Linien zum nächsten Punkt, so stellst du sicher das du eine durchgehende Linie hat.