PDA

View Full Version : سوال: مشکل در FullScreen کردن فرم ها



amir-m
پنج شنبه 31 تیر 1389, 20:11 عصر
سلام.
من یه برنامه تو کامپیوتری با مانیتور 17 اینچ معمولی طراحی کرده ام که فرم های توش FullScreen اند.
زمانی که برنامه را روی یه کامپیوتر با مانیتور LCD Wide اجرا می کنم فرم ها به صورت یک مربع در گوشه ی چپ و بالای مانیتور نمایش داده میشن (FullScreen نیستند)
کسی میتونه من را راهنمایی کنه که چطور فرم ها را طراحی کنم که توی همه نوع مانیتوری به صورت FullScreen نمایش داده بشن؟
با تشکر

Felony
جمعه 01 مرداد 1389, 08:32 صبح
این سوال مربوط به بخش مباحث عمومی دلفی و پاسکال هست نه محیط توسعه دلفی .
در مورد سوالتون هم کد زیر رو در رویداد OnCreate فرم برنامتون بنویسید :

var
WorkArea: TRect;
begin
// Get the current work area
SystemParametersInfo( SPI_GETWORKAREA, 0, &workarea, 0 );
Top:= WorkArea.Top;
Left:= WorkArea.Left;
Height:= WorkArea.Bottom;
Width:= WorkArea.Right;
end;

amir-m
جمعه 01 مرداد 1389, 16:42 عصر
سلام
من این کد را آزمایش کردم اما خطای زیر را برای خط پنجم قطعه کد صادر کرد:

Illegal character in input file: '&' ($26)

Felony
جمعه 01 مرداد 1389, 20:37 عصر
کد که مشکلی نداشت ، & علامت اشاره گر ( Pointer ) در دلفی هست و تو خط 5 هم از تابع خواسته شده تا مختصات رو به متغییری که اشاره گر WorkArea بهش اشاره میکنه بریزه ، شما یه نمونه برنامه که نوشتید و این مشکل رو داره ضمیمه کنید .

amir-m
جمعه 01 مرداد 1389, 21:17 عصر
هرچه سعی کردم نتونستم فایل زیپ شده برنامه را ضمیمه کنم
تصویر قطعه کد و خطا را تو محیط IDE میگذارم:

http://up.iranblog.com/Files1/ecb09f583fa743738b31.jpg

vcldeveloper
شنبه 02 مرداد 1389, 05:58 صبح
من این کد را آزمایش کردم اما خطای زیر را برای خط پنجم قطعه کد صادر کرد
از @ به جای & استفاده کنید.

amir-m
شنبه 02 مرداد 1389, 16:50 عصر
با استفاده از @ مشکل حل شد.
تشکر

MOJTABAATEFEH
شنبه 02 مرداد 1389, 19:09 عصر
سلام.
من یه برنامه تو کامپیوتری با مانیتور 17 اینچ معمولی طراحی کرده ام که فرم های توش FullScreen اند.
زمانی که برنامه را روی یه کامپیوتر با مانیتور LCD Wide اجرا می کنم فرم ها به صورت یک مربع در گوشه ی چپ و بالای مانیتور نمایش داده میشن (FullScreen نیستند)
کسی میتونه من را راهنمایی کنه که چطور فرم ها را طراحی کنم که توی همه نوع مانیتوری به صورت FullScreen نمایش داده بشن؟
با تشکر

دوست عزیز از کد زیر می توانید استفاده نمایید که فرم رو به صورت کامل FullScreen می کند ولی لازم به ذکر است که Taskbar رو هم حذف می کند و مجدد پس از بستن برمی گرداند


procedure TForm1.FormCreate(Sender: TObject);
var
HTaskbar : HWND;
OldVal : LongInt;
begin
TRY
//Find handle of TASKBAR
HTaskBar:=FindWindow('Shell_TrayWnd',nil);
//Turn SYSTEM KEYS off
SystemParametersInfo (97, Word (True), @OldVal, 0) ;
//Disable the taskbar
EnableWindow(HTaskBar,False);
//Hide the taskbar
ShowWindow(HTaskbar,SW_HIDE);
FINALLY
With FORM1 do begin
BorderStyle :=bsNone;
FormStyle :=fsStayOnTop;
Left :=0;
Top :=0;
Height :=Screen.Height;
Width :=Screen.Width;
end;
END{FINALLY}
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
HTaskbar : HWND;
OldVal : LongInt;
begin
//Find handle of TASKBAR
HTaskBar:=FindWindow('Shell_TrayWnd',nil);
//Turn SYSTEM KEYS Back ON
SystemParametersInfo (97, Word (False), @OldVal, 0);
//Enable the taskbar
EnableWindow(HTaskBar,True);
//Show the taskbar
ShowWindow(HTaskbar,SW_SHOW);
end;


موفق باشید