ورود

View Full Version : مبتدی: موقعیت یک فرم در صفحه



space_
یک شنبه 24 اسفند 1393, 11:29 صبح
سلام
می خواستم بدونم با دلفی چه جوری میشه روی x y های صفحه کلیک کنیم ؟
و چه جوری می تونم موقعیت یک فرم رو توی صفحه پیدا کنم که مثلا از چپ و بالا چقدر فاصله داره ؟
خواهشاً با کد یا سورس واسم مثال بزنید که متوجه بشم

golbafan
یک شنبه 24 اسفند 1393, 11:53 صبح
هر فرمی دو تا خاصت به نام left و top أاره

برای مشخص کردن موقعیت موس موتونید از تابع getcursorpos استفاده کنید

همچنین میشه مقدار mouse.cursorpos رو استفاده کنید

space_
یک شنبه 24 اسفند 1393, 12:52 عصر
هر فرمی دو تا خاصت به نام left و top أاره

برای مشخص کردن موقعیت موس موتونید از تابع getcursorpos استفاده کنید

همچنین میشه مقدار mouse.cursorpos رو استفاده کنید

مرسی داداش ولی خودمم می دونم که فرم این خاصیت رو داره ولی نحوه استفاده از این خاصیتش و بدست آوردن اون رو بلد نیستم
موقعیت موس رو هم میتونم بدست بیارم ولی چه جوری رو همون نقطه کلیک کنم رو نمی دونم

ehsan_faal
یک شنبه 24 اسفند 1393, 14:05 عصر
یه فرم درست کن با 4 تا لیبل.
بعد اینجوری مقدارشون رو نشون بده:


unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;

type
TForm1 = class(TForm)
tmr1: TTimer;
lbl1: TLabel;
lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
procedure FormCreate(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
lbl3.Caption:='';
lbl4.Caption:='';
end;

procedure TForm1.tmr1Timer(Sender: TObject);
begin
lbl3.Caption:=IntToStr(Form1.Left);
lbl4.Caption:=IntToStr(Form1.Top);
end;

end.

یوسف زالی
یک شنبه 24 اسفند 1393, 14:06 عصر
برای پیدا کردن موقعیت هر کنترل باید نام کنترل نقطه left یا top بگذاری.
کلیک کردن MouseEvent
موقعیت موس هم که گفته شد.

space_
دوشنبه 25 اسفند 1393, 08:25 صبح
واقعا ممنون

اگه بخوام مختصات داخلی یک پنجره مثل اسکایپ رو بدست بیارم به چه شکله؟

golbafan
دوشنبه 25 اسفند 1393, 10:20 صبح
قبلا گفته شده جستجو کنید...

var
HWnd : THandle;
begin
IF FINDWINDOW(NIL,'Untitled - Notepad')<>0 then
begin
HWnd := FindWindow(nil, 'Untitled - Notepad'); //گرفتن هندل برنامه
setforegroundwindow(hwnd);
SetWindowPos(hWnd,HWND_BOTTOM,10,10,500,500,SWP_SH OWWINDOW); //تغییر سایز و مکان
end;
end;

بجای SetWindowPos باید از getWindowPos استفاده کنید