PDA

View Full Version : آیا امکان داره در یک صفحه وقتی موس را حرکت می دهیم رد پا روی صفحه بگذارد



Valadi
یک شنبه 06 خرداد 1386, 07:22 صبح
آیا امکان داره در یک صفحه وقتی موس را حرکت می دهیم (به همراه چپ کلیک ) رد پا روی صفحه بگذارد مانند Paint ویندوز (نرم افزار نقاشی )
مثلا فایل ضمیمه

mehdi5106
یک شنبه 06 خرداد 1386, 07:45 صبح
فکر کنم از رویداد OnmouseMove و حرکت موس خطی رو چاپ کنه .البته خط متشکل از نقطه ها هست.و ما باید در رویداد فوق باید نقطه چاپ کنیم.

Mahmood_M
یک شنبه 06 خرداد 1386, 08:14 صبح
سلام
می تونید از دستور LineTo در رویداد OnMouseMove استفاده کنید ...

موفق باشید ...

Arman_1367
یک شنبه 06 خرداد 1386, 10:04 صبح
به این مثال یه نگاه بکن:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
FDrg:Boolean;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Fdrg:=True;
Canvas.PenPos:=Point(x,y);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If FDrg then
Canvas.LineTo(x,y);
end;

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

end.


یا حق...

dkhatibi
یک شنبه 06 خرداد 1386, 10:59 صبح
گذاشتن نقطه در هر جایی که موس حرکت می کند.

Arman_1367
یک شنبه 06 خرداد 1386, 11:11 صبح
گذاشتن نقطه در هر جایی که موس حرکت می کند.
ببین و توجه کن اگر شما هر جایی را که ماوس حرکت کند نقطه گذاری کنید مجموعه ای از نقاط گسسته رسم کرده اید اما اگر از نقطه قبل به مکان جدید خطی بکشید در این صورت یک مسیر از حرکت ماوس را در اختیار دارید دقیقاً همان کد قبلی که نوشته بودم مسیر را به شما می دهد.
نه نقاط را.....

mehdi5106
یک شنبه 06 خرداد 1386, 11:35 صبح
این کد کاراکتر صفر را با حرکت موس به صورت یک خط رسم می کند:تغییرات موردنظرتو تو این اعمال کن:


procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
la: Tlabel;
begin
la := Tlabel.Create (Self);
la.Parent := Self;
la.Left := X;
la.Top := Y;
la.Caption := '0';
end;

Valadi
یک شنبه 06 خرداد 1386, 14:10 عصر
جناب آرمان اگر بخواهیم ضخامت را بیشتر کنیم چه کار کنیم

Mahmood_M
یک شنبه 06 خرداد 1386, 14:37 عصر
سلام
برای ضخامت باید Pen رو تنظیم کنید : Canvas.Pen.whith := 10 یا هر عددی که خواستید بزارید ...
همچنی توی قسمت Pen و همچنین براش (Canvas.Brush) میتونید استایل و سایر تنظمات رو تغییر بدید ...

موفق باشید ...

soroush_vs
یک شنبه 06 خرداد 1386, 21:27 عصر
تنها کاری که باید بکنی اینه که توی رویداد OnMouseMove فرمت این یه خط کد رو بزاری حالت گسسته


self.Canvas.Pixels[X,Y]:=clred;