Pozycja myszy na PaintBox

0

Elo panowie! ;-) idziewczęta :-)

Pytanie: Jak przypisac zmiennym: x i y pozycje myszki, ale tylko wtedy gdy kursor szczura znajduje się na PaintBox'ie

Dzięki wszystkim za odpowiedź, możliwe że będe miał jeszcze pare pytań co do PaintBox'a ;-)

Ktoś może wie czy da rade zrobić coś w stylu siatki na PainBox'ie? [stuk]

0

PaintBox ma coś takiego jak OnMouseMove

procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
//Masz x i y i co tu przypisywać ?
end;

A tak w ogóle to nie bardzo wiem czy o to ci chodzi. [stuk]

0

Chodzi mi o to żeby zmienne x i y przechowywały przez cały czas współrzędne kursora, żebym mógł je pÓźniej wykorzystać, np.
[code]Label1.Caption := x;[/code]
Czyli gdzieś je przypisywać albo coś...

0

to zrób tak:
najpierw zadeklaruj jakieś zmienne powiedzmy że x1 i y1
później w OnMouseMove PaintBoxa napisz:
x1 := x;
y1 := y;

następnie np w OnClick Buttona:
Label1.Caption := x1;
Label2.Caption := y1;

0

Dzięki xxx, kod działa, tylko trzba było dodać funkcje IntToStr, ale poza tym wszystko jest, a wiesz może jak zrobić siatke na PaintBox'ie, czyli poziome i pionowe paski które np. co 10pixeli przechodzą przez PainBox'a

0

X_programmer, pobaw się PaintBox.Canvas.Line; Więcej ci nie powiem, bo to są podstawy.

0

chyba to będzie tak:

procedure TForm1.Button1Click(Sender: TObject);
var
x, y: integer;

begin
x := 0;
y := 0;

repeat
paintbox1.Canvas.MoveTo(0, x);
paintbox1.Canvas.LineTo(paintbox1.width, x);
x := x + 10
until x>=paintbox1.height;

repeat
paintbox1.Canvas.MoveTo(y, 0);
paintbox1.Canvas.LineTo(y, paintbox1.height);
y := y + 10
until y >= paintbox1.width;
end;

I nie zapomnij dać na formę PaintBoxa :-)

0

chyba to będzie tak:

procedure TForm1.Button1Click(Sender: TObject);
var
x, y: integer;

begin
x := 0;
y := 0;

repeat
paintbox1.Canvas.MoveTo(0, x);
paintbox1.Canvas.LineTo(paintbox1.width, x);
x := x + 10
until x>=paintbox1.height;

repeat
paintbox1.Canvas.MoveTo(y, 0);
paintbox1.Canvas.LineTo(y, paintbox1.height);
y := y + 10
until y >= paintbox1.width;
end;

I nie zapomnij dać na formę PaintBoxa :-)

Może to i są podstawy ale nie każdy musi to wiedzieć.

0

Dzięki :-) , wcześniej nic nie robiłem przy użyciu PainBox'a, dlatego sie pytam, ale dzieki.

0

Ale Z0nK!, kod nie działa, albo linie są białe :-P, można jakoś zmienić ich kolor? kod sie kompiluje ale lini niw widze

0

PB.canvas.pen.color := clBlack;

0

U mnie działa normalnie.
A kolor możesz zmienić tak:

paintbox1.Canvas.Pen.Color := clred; //zmieni kolor na czerwony :-P

0

Widze że jak pisałem ktoś mnie wyprzedził :-D

0

U mnie dalej nie dział :-( nie wiem czemu, ale dzięki wam za odpowiedzi!!!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1