Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Gegenteil von paintbox1.onmousemove:=nil;


christian87 - Do 08.02.07 13:30
Titel: Gegenteil von paintbox1.onmousemove:=nil;
Also wie schon gesagt ich will das onmousemove per Befehl wieder aktivieren.


Christian S. - Do 08.02.07 13:35

Du musst dem Ereignis wieder die entsprechende Methode zuweisen.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  DoSomething;
end;

{...}

paintbox1.MouseMove := PaintBox1MouseMove;


christian87 - Do 08.02.07 13:41

Also irgendwie haut das noch nicht hin. Also onmousemove soll aktiviert werden, wenn ich auf nen Button klicke.


Christian S. - Do 08.02.07 13:42

Ohne Deinen Quellcode zu kennen, kann man Dir da wohl nicht helfen :-)


christian87 - Do 08.02.07 13:46


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Neu1Click(Sender: TObject);
begin
//hier soll onmousemove aktiviert werden
x0:=1;
x1:=199;
y0:=1;
y1:=399;
bx:=100;
by:=350;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
paintbox1.OnMouseMove:=nil;
end;

end.


Christian S. - Do 08.02.07 13:47

Und wo ist die Methode, welche bei OnMouseMove ausgeführt werden soll?


christian87 - Do 08.02.07 13:57


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin

label1.caption:=inttostr(x);
label2.Caption:=inttostr(y);

Loesche_Hintergrund;
Zeichne_Ball;

paintbox1.canvas.MoveTo(bx+8,by+8);
paintbox1.Canvas.LineTo(x,y);

procedure TForm1.Neu1Click(Sender: TObject);
begin
paintbox1:=paintbox1.OnMouseMove;
x0:=1;
x1:=199;
y0:=1;
y1:=399;
bx:=100;
by:=350;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
paintbox1.OnMouseMove:=nil;
end;


Christian S. - Do 08.02.07 15:18

Also zuerst einmal fehlt da ein "end;" bei der ersten Prozedur.

Dann das hier:

Delphi-Quelltext
1:
paintbox1:=paintbox1.OnMouseMove;                    

Mein Quelltext sah da ganz oben ein bisschen anders aus ;-) Du versuchst hier, der Paintbox selber (also einem Objekt vom Typ TPaintBox) eine Prozedur zuzuweisen. Das kann doch gar nicht klappen :-) Du musst dem Ereignis die Prozedur zuweisen, wie ich das in meinem ersten Quelltext getan habe.