ورود

View Full Version : سوال: ساخت فرم تمام صفحه برای تمام رزولوشن ها



nsco_nsco
دوشنبه 27 تیر 1390, 22:34 عصر
سلام دوستان من می خوام یکی صفحه ( فرم ) بسازم که در تمام رزولوشن ها همون طوری بمونه و کوچیک از حد نشه یا بزرگ نشه و تمام اجزائ روی فرم را به خوبی نمایش بدهد ممنون می شوم کمک کنید :قلب:

Felony
دوشنبه 27 تیر 1390, 22:37 عصر
خصیصه های Anchors و Align کنترل های مورد نظر رو بر حسب نیاز مقدار بدید .

nsco_nsco
دوشنبه 27 تیر 1390, 22:41 عصر
سلام بعد ایا مشکل تمام صفحه ای در کلیه رزولوشن ها حل میشه مثلا اگر نرم افزار اپرا رو باز کنی با تمام رزولوشن ها تمام صفحه است و کوچیک و بزرگ نمی شود ممنون میشوم پاسخ بدید :قلب:

یوسف زالی
دوشنبه 27 تیر 1390, 22:56 عصر
سلام.
این دو تا چیز متفاوته.
اپرا ماکزیمایز باز میشه. برای ماکزیمایز کردن خصیصه WindowState رو بگذارید رو wsMaximized.
اما اینکه سایز فرم رو تطبیق بدبد ست کردن اندازه فرم با مقادیر Screen.Width و Screen.Height هست.
برای آیتم های روی فرم هم هم می تونی از Anchor استفاده کنی و هم هنگام لود فرم از فراخوانی توابعی که خودت نوشتی برای تطبیق اونها با فرم.
برای اینکه اندازه های فرم رو محدود کنی خصوصیات Constraints رو تنظیم کن.
موفق باشی.

Felony
دوشنبه 27 تیر 1390, 23:21 عصر
سلام بعد ایا مشکل تمام صفحه ای در کلیه رزولوشن ها حل میشه مثلا اگر نرم افزار اپرا رو باز کنی با تمام رزولوشن ها تمام صفحه است و کوچیک و بزرگ نمی شود ممنون میشوم پاسخ بدید :قلب:
WindowState رو با wsMaximized مقدار دهی کنید و BorderStyle رو با bsSingle ؛ این دقیقا همون چیزی هست که Opera انجام میده .

برای تنظیم اندازه اشیاء بر اساس اندازه فرم هم تو پست قبلیم گفتم ...

nsco_nsco
سه شنبه 28 تیر 1390, 18:42 عصر
سلام ممنون از پاسخهاتون درست شد و طبق اینکه گفتید کردم مشکلی که هست اگر دکمه های بسته شدن و مینیمایز و ماکسیمایز را برداری هنوز اگر دبل کلیک روی منو کنی صفحه کمی کوچیک می شود و اگر باز کلیک کنی صفحه بزرگ میشود می خواستم بدونم چطور میشه این رو برداشت و یکی دیگه سوال اینکه اگر دیده باشید در اپرا حتی در پایین صفحه کلیدهایی گذاشته شده و حتی در بالای صفحه در همین منو سطل اشغال و اینها قرار داده شده است می خواستم بدونم چطوری میشود که این کار را در دلفی انجام داد ممنون می شوم راهنمایی کنید با تشکر :قلب:

Felony
سه شنبه 28 تیر 1390, 19:23 عصر
در مورد سوال اول باید یک Message Handler بنویسی و پیغام های شماره 61490 و 61730 رو Handle کنی ، تعریف زیر رو تو قسمت Private کلاس فرم برنامت قرار بده :

procedure MyHandler(var Msg: TWMSysCommand); message WM_SYSCOMMAND;

و به صورت زیر کدش رو بنویس :

procedure TForm1.MyHandler(var Msg: TWMSysCommand);
begin
Caption:=(IntToStr(Msg.CmdType));
if (Msg.CmdType <> 61490) and (Msg.CmdType <> 61730) then
DefaultHandler(Msg);
end;

در مورد سوال دوم هم اگر میخوای چیزی که تو Opera هست رو شبیه سازی کنی باید خودت Border فرم رو طراحی کنی .

یوسف زالی
سه شنبه 28 تیر 1390, 20:15 عصر
در مورد سوال اول:
BorderStyle رو روی bsDialog ست کنید.
قسمت دومش رو موافق جناب تاجیک هستم.

Felony
سه شنبه 28 تیر 1390, 20:29 عصر
BorderStyle رو روی bsDialog ست کنید.
اون موقع دیگه کلیدهای Minimize و Maximize و Icon رو ندارند .

یوسف زالی
سه شنبه 28 تیر 1390, 20:46 عصر
سلام ممنون از پاسخهاتون درست شد و طبق اینکه گفتید کردم مشکلی که هست اگر دکمه های بسته شدن و مینیمایز و ماکسیمایز را برداری


طبق خواست دوستمون گفتم

nsco_nsco
چهارشنبه 29 تیر 1390, 00:01 صبح
سلام ممنون از کمکهاتون ممنون اقای تاجیک همونطور که اقا یوسف گفتند من همین موضوع رو می خواستم باز از هر دوشما ممنونم :


BorderStyle رو روی bsDialog ست کنید.


:قلب:

nsco_nsco
چهارشنبه 29 تیر 1390, 02:31 صبح
سلام ممنون از پاسخهاتون یک سوال داشتم :
آیا راهی هست که این منو بالا که سه دکمه می نیمایز و اینها قرار داره بعد از اعمال عملیاتی که بالا گفته شد بشه سایز اون رو تایین کرد مثلا کشیده تر بشه یا باریکتر بشه ممنون میشوم راهنمایی کنید با تشکر از همه شما دوستان :قلب:

یوسف زالی
چهارشنبه 29 تیر 1390, 09:21 صبح
میشه .
اما راحت تره که اسکین نصب کنی . بگرد دنبال اسکینی که شکلش همون طوری هست که می خواهی.