PDA

View Full Version : چرخش یک آبجکت روی فرم



samad1361
چهارشنبه 29 خرداد 1387, 19:25 عصر
با سلام و خسته نباشید
چه کدی بنویسیم که کاربر بتواند آبجکت روی فرم را بچرخاند (در فایل اجرایی)
می خوام برنامه ای بنویسم که کاربر بتواند آبجکت روی فرم را حرکت دهد تغییر اندازه دهد و بتواند بچرخاند. ترجیحا آبجکت اگر image باشد بهتر است. اگر در مورد چرخاندن آبجکت راهنمایی بفرمائیدد متشکر میشم.
با سپاس از زحماتتان و راهنمائیهایتان

Hsimple11
چهارشنبه 29 خرداد 1387, 20:34 عصر
با سلام.

برای جابجا کردن هر کنترلی میتوانید از این کد استفاده کنید. فکر نمیکنم نیاز به توضیح داشته باشد. سه رویداد onmousedown، onmousemove و onmouseup را برای کنترل خود بدین شکل تعریف کنید :



.
.
.
.
private
{ Private declarations }
FDownX,
FDownY: Integer;
FDragging: Boolean;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

type
TMoveCracker = class(TControl);

procedure TForm1.ControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDownX := X;
FDownY := Y;
FDragging := True;
TMoveCracker(Sender).MouseCapture := True;
end;

procedure TForm1.ControlMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if FDragging then
with Sender as TControl do
begin
Left := X - FDownX + Left;
Top := Y - FDownY + Top;
end;
end;

procedure TForm1.ControlMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if FDragging then
begin
FDragging := False;
TMoveCracker(Sender).MouseCapture := False;
end;
end;

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

samad1361
چهارشنبه 29 خرداد 1387, 23:13 عصر
با تشکر از اینکه جواب دادید
در چرخش آبجکت مشکل دارم لطفا در این باره توضیح بدید

samad1361
پنج شنبه 30 خرداد 1387, 23:26 عصر
لطفا کسی اگه اطلاعاتی در این مورد داره بگه

samad1361
جمعه 31 خرداد 1387, 14:46 عصر
کسی نیست یه راهنمایی بکنه