View Full Version : تغییر اندازه فرم متناسب با اندازه مانیتور
farzane_fn
پنج شنبه 16 مهر 1388, 10:14 صبح
دوستای گلم سلام. امیدوارم خوب و خوش باشین. مشکلم اینه که من یه برنامه نوشتم . مانیتوری که ازش استفاده می کنم هفده اینچ هست. ولی وقتی برنامه رو روی یه کامپیوتر که مانیتورش هفده اینچ نیست - مثلا 15 اینچ - نصب می کنم اندازه فرم هام خیلی نامناسب نشون می دن و متناسب با اندازه مانیتور مقصد نیستن. می خواستم بدونم چی کار کنم که اندازه فرم هام وقتی مانیتور تغییر می کنه متناسب با اندازه مانیتور مقصد تغییر کنه؟ ممنون می شم راهنمایی کنین. با تشکر...
Hamid.Kad
پنج شنبه 16 مهر 1388, 14:52 عصر
بعید می دونم ربطی به اندازه مانیتور داشته باشه. احتمالاً بخاطر متفاوت بودن رزلوشن مانیتورهاست. میتونید رزولوشن ها رو تنظیم کنید و یا از screen استفاده کنید. مثلاً
form1. width= screen.width; form1.height= screen.height
که باعث میشه فرم، کل صفحه نمایش رو احاطه کنه.
babakmomeni
پنج شنبه 16 مهر 1388, 15:15 عصر
بعید می دونم ربطی به اندازه مانیتور داشته باشه. احتمالاً بخاطر متفاوت بودن رزلوشن مانیتورهاست. میتونید رزولوشن ها رو تنظیم کنید و یا از screen استفاده کنید. مثلاً
form1. width= screen.width; form1.height= screen.heightکه باعث میشه فرم، کل صفحه نمایش رو احاطه کنه.
سلام. حق با این دوست عزیز هستش. این مشکل به علت اختلاف رزلوشن هاست که حتی ممکنه در دو مونیتور یکسان ولی با رزلوشن مختلف پیش بیاد. البته در تکمیل فرمایشات این عزیز باید عرض کنم که شما باید نسبت طول و عرض فرم به طول و عرض screen رو در حالت پیش فرض مطلوب خودتون، یعنی روی رزلوشن طراحیتون، به دست بیارین. بعد روی هر سیستم برنامه طول و عرض صفحه رو بگیره و ابعاد فرم رو با همون نسبتهای فوق الذکر تنظیم کنه. البته این راهیه که به نظر من می رسه و مسلما راههای بهتری هم وجود داره که اساتید در پستهای بعدی زحمتشو خواهند کشید.
پیروز باشید.
MOJTABAATEFEH
جمعه 17 مهر 1388, 00:48 صبح
دوست عزيز فكر كنم اگر Align فرم رو روي كلاينت تنظيم كني مشكل حل بشه چون خود برنامه براي تطبيق يكسري كار انجام ميده
موفق باشي
كد دلفي
http://www.mojtabaie.persianblog.ir
AliReza Vafakhah
جمعه 17 مهر 1388, 12:48 عصر
تغییر رزولیشن مانیتور :
procedure TForm1.SetResolution(ResX, ResY: DWord);
var
lDeviceMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lDeviceMode);
lDeviceMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lDeviceMode.dmPelsWidth :=ResX;
lDeviceMode.dmPelsHeight:=ResY;
ChangeDisplaySettings(lDeviceMode, 0);
end;
توجه : فقط اندازه های استاندار و مطابق با مانیتور را وارد کنید ، ممکنه ...
farzane_fn
جمعه 17 مهر 1388, 14:18 عصر
بعید می دونم ربطی به اندازه مانیتور داشته باشه. احتمالاً بخاطر متفاوت بودن رزلوشن مانیتورهاست. میتونید رزولوشن ها رو تنظیم کنید و یا از screen استفاده کنید. مثلاً
form1. width= screen.width; form1.height= screen.height
که باعث میشه فرم، کل صفحه نمایش رو احاطه کنه.
دوست عزیزم سلام. از راهنماییتون متشکرم.فقط یه سوال می مونه من وقتی این کار رو می کنم فقط فرم بزرگ می شه و سایر اشیاء سر جای خودشون باقی می مونن و هارمونی فرم به هم می خوره چی کار کنم که اشیاء هم متناسب با تغییر اندازه فرم جابه جا شن و سر جای خودشون قرار بگیرن؟ لطفا کد بنویسین. ممنون می شم اگه راهنمایی کنین...
merced
جمعه 17 مهر 1388, 15:08 عصر
چی کار کنم که اشیاء هم متناسب با تغییر اندازه فرم جابه جا شن و سر جای خودشون قرار بگیرن؟ لطفا کد بنویسین. ممنون می شم اگه راهنمایی کنین...
تمام كنترلها يه پراپرتي دارند به نام Align كه مي تونيد از اون استفاده كنين.
البته مقاله Multi-Resolution Application رو از delphi.about ببينيد خيلي خوبه
http://delphi.about.com/od/standards/a/aa030700a.htm
آخرش به Scale ختم مي شه كه بهترين راهه
procedure ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt) ;
begin
F.Scaled := True;
F.AutoScroll := False;
F.Position := poScreenCenter;
F.Font.Name := 'Arial';
if (Screen.Width <> ScreenWidth) then begin
F.Height :=
LongInt(F.Height) * LongInt(Screen.Height)
div ScreenHeight;
F.Width :=
LongInt(F.Width) * LongInt(Screen.Width)
div ScreenWidth;
F.ScaleBy(Screen.Width,ScreenWidth) ;
end;
end;
farzane_fn
جمعه 17 مهر 1388, 15:17 عصر
تمام كنترلها يه پراپرتي دارند به نام Align كه مي تونيد از اون استفاده كنين.
البته مقاله Multi-Resolution Application رو از delphi.about ببينيد خيلي خوبه
http://delphi.about.com/od/standards/a/aa030700a.htm
آخرش به Scale ختم مي شه كه بهترين راهه
procedure ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt) ;
begin
F.Scaled := True;
F.AutoScroll := False;
F.Position := poScreenCenter;
F.Font.Name := 'Arial';
if (Screen.Width <> ScreenWidth) then begin
F.Height :=
LongInt(F.Height) * LongInt(Screen.Height)
div ScreenHeight;
F.Width :=
LongInt(F.Width) * LongInt(Screen.Width)
div ScreenWidth;
F.ScaleBy(Screen.Width,ScreenWidth) ;
end;
end;
دوست عزیزم سلام. جالبه بدونید من اهل بیرجند هستم و خوشحال می شم با شما دوست بشم . جواب شما رو هنوز آنالیز نکردم ولی به هر حال از راهنماییتون کمال تشکر رو دارم.
Mahmood_M
جمعه 17 مهر 1388, 15:17 عصر
لطفا کد بنویسین. ممنون می شم اگه راهنمایی کنین...
اشیاء روی فرم دو خاصیت به نامهای Align و Anchors دارند ، با استفاده از این خاصیتها میتونید مشکلتون رو حل کنید ...
نیازی به تغییر رزولوشن و تغییر اندازه فرم نیست ...
کمی با این خصوصیات کار کنید تا تاثیرشون رو ببینید ، نیازی به کد نویسی هم نیست ...
موفق باشید ...
farzane_fn
جمعه 17 مهر 1388, 15:28 عصر
اشیاء روی فرم دو خاصیت به نامهای Align و Anchors دارند ، با استفاده از این خاصیتها میتونید مشکلتون رو حل کنید ...
نیازی به تغییر رزولوشن و تغییر اندازه فرم نیست ...
کمی با این خصوصیات کار کنید تا تاثیرشون رو ببینید ، نیازی به کد نویسی هم نیست ...
موفق باشید ...
دوست عزیزم سلام.از راهنماییتون کمال تشکر رو دارم..
فقط اگه یه کمی راهنمایی می کردین واقعا ممنون می شدم..
merced
جمعه 17 مهر 1388, 15:41 عصر
دوست عزیزم سلام. جالبه بدونید من اهل بیرجند هستم و خوشحال می شم با شما دوست بشم . جواب شما رو هنوز آنالیز نکردم ولی به هر حال از راهنماییتون کمال تشکر رو دارم.
جداً خوب من هم خوشحال مي شم .
Valadi
جمعه 17 مهر 1388, 16:00 عصر
با سلام
من حدود یک سال پیش کامپونت اندازه فرم متناسب با اندازه مانیتور در همین سایت قرار دادم سرچ کن
Mahmood_M
جمعه 17 مهر 1388, 16:48 عصر
دوست عزیزم سلام.از راهنماییتون کمال تشکر رو دارم..
فقط اگه یه کمی راهنمایی می کردین واقعا ممنون می شدم..
راستش نمی دونم چطور باید در رابطه با این خصوصیات راهنمایی کرد ... ! خیلی ساده هستند ، فقط باید باهاشون ور برید تا تاثیرشون رو ببینید ، باور کنید راحت مشکلتون رو حل میکنید ، نیازی به کد نویسی و کار با رزولوشن مانیتور نیست ... ، در وقتتون صرفه جویی خواهد شد ...
موفق باشید ...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.