mbshareat
شنبه 10 مهر 1389, 19:55 عصر
بنده یه فرم دارم که توش یه TImage گذاشتم.برنامه طوری عمل می کنه که قسمت بالای تصویر که شکل نوار عنوان داره رو می تونیم با ماوس بگیریم و فرم رو که لبه نداره و رنگ خاصی از اون نامرئی شده رو با در حرکت ماوس جابجا کنیم
این هم از کد مورد نظر:متفکر::
Var
ScrollForm: TScrollForm;
PicMouseX,PicMouseY:SmallInt;
PicMouseDown:Boolean;
implementation
procedure TScrollForm.FormPicMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If PicMouseDown=True then
Begin
Left:=Left+(Mouse.CursorPos.X-PicMouseX);
Top:=Top+(Mouse.CursorPos.Y-PicMouseY);
PicMouseX:=Mouse.CursorPos.X;
PicMouseY:=Mouse.CursorPos.Y;
End;
End;
procedure TScrollForm.FormPicMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
T:TEdit;
begin
If Y<30 then
Begin
PicMouseDown:=True;
PicMouseX:=Mouse.CursorPos.X;
PicMouseY:=Mouse.CursorPos.Y;
End;
End;
procedure TScrollForm.FormPicMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
PicMouseDown:=False;
end;
منطق برنامه درست به نظر می رسه و توی کامپیوتر خونه درست جواب می ده اما در محل کار فرم از مکان نما جا می مونه!:ناراحت:
تفاوت سیستم خونه و محل کارم هم اینه که برنامه تو خونه سریعتر و تو مونیتور CRT و تو محل کار با سرعت یک چهارم و تو مونیتور LCD اجرا می شه.
من با گذاشتن دو تا Label بعضی مقادیر رو هم بررسی کردم اما دلیل این نقص اجرا رو نفهمیدم.:اشتباه:
(اگه به کدی که نوشتم نگاه کنید می بینید سرعت نمی تونه نقشی در اجرای صحیح برنامم داشته باشه)
البته مشکل دیگه ای هم تو برنامه داشتم که تو تاپیک
http://barnamenevis.org/forum/showthread.php?t=250670
مطرح کردم.
کسی راهی به ذهنش نمی رسه؟:گیج:
(خواهش می کنم اگه راهی در نظر ندارین فقط یه سوال به تاپیک اضافه نکنین:خجالت:.)
------------
گر صبر نمایی ز غوره حلوا سازی!!!
این هم از کد مورد نظر:متفکر::
Var
ScrollForm: TScrollForm;
PicMouseX,PicMouseY:SmallInt;
PicMouseDown:Boolean;
implementation
procedure TScrollForm.FormPicMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If PicMouseDown=True then
Begin
Left:=Left+(Mouse.CursorPos.X-PicMouseX);
Top:=Top+(Mouse.CursorPos.Y-PicMouseY);
PicMouseX:=Mouse.CursorPos.X;
PicMouseY:=Mouse.CursorPos.Y;
End;
End;
procedure TScrollForm.FormPicMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
T:TEdit;
begin
If Y<30 then
Begin
PicMouseDown:=True;
PicMouseX:=Mouse.CursorPos.X;
PicMouseY:=Mouse.CursorPos.Y;
End;
End;
procedure TScrollForm.FormPicMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
PicMouseDown:=False;
end;
منطق برنامه درست به نظر می رسه و توی کامپیوتر خونه درست جواب می ده اما در محل کار فرم از مکان نما جا می مونه!:ناراحت:
تفاوت سیستم خونه و محل کارم هم اینه که برنامه تو خونه سریعتر و تو مونیتور CRT و تو محل کار با سرعت یک چهارم و تو مونیتور LCD اجرا می شه.
من با گذاشتن دو تا Label بعضی مقادیر رو هم بررسی کردم اما دلیل این نقص اجرا رو نفهمیدم.:اشتباه:
(اگه به کدی که نوشتم نگاه کنید می بینید سرعت نمی تونه نقشی در اجرای صحیح برنامم داشته باشه)
البته مشکل دیگه ای هم تو برنامه داشتم که تو تاپیک
http://barnamenevis.org/forum/showthread.php?t=250670
مطرح کردم.
کسی راهی به ذهنش نمی رسه؟:گیج:
(خواهش می کنم اگه راهی در نظر ندارین فقط یه سوال به تاپیک اضافه نکنین:خجالت:.)
------------
گر صبر نمایی ز غوره حلوا سازی!!!