PDA

نسخه کامل مشاهده نسخه کامل : يكي بگه با اين مشكل رزولوشن چي كار كنم؟



hp1361
06-06-2006, 16:44
سلام

اقا من برنامه هامو وقتي طراحي ميكنم رزولوشن مانيتور روي 1024×768 اخه با كمتر اين نميتونم

حالا مشكلم اينه كه وقتي برنامه رو روي سيستم ديگه با رزولوشن پايين تر اجرا مي كنيم نصف صفحه ديده نميشه


ممنون (اقا نستا و سولجر عزيز چشمم به شماست)

mahsoft
06-06-2006, 16:49
برادر عزیز

را حل این مشکل اینه که شما باید برای اجرای پنجره برنامه خودتون درصد تنظیم کنید که در هر نوع سایزی از روزلیشن

تمام صفحه رو پر کنه

hp1361
06-06-2006, 17:09
عزيز ممنونم جواب دادي

اما واضح تر بگي ممنون ميشم يه مثال هم بزن

soldier
06-06-2006, 17:47
سلام
این رو بزار توی قسمت OnCreate

var
DevMode: TDeviceMode;
begin
EnumDisplaySettings(nil, 0, DevMode);
DevMode.dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
DevMode.dmPelsWidth := هر چه قدر که برنامه ات نیاز داره;
DevMode.dmPelsHeight := هر چه قدر که برنامه ات نیاز داره;
ChangeDisplaySettings(DevMode, 0);
end;

البته اینو بگم این صفحه رو به مقداری که گذاشتی می بره.
و باید بعد از خروج برنامه ات به حالت اول برگردونی.
مثلآ باید دو متغیر بزاری که قبل از تغییر صفحه اندازه صفحه رو ذخیره کنه.
و در قسمت OnClose باید به حالتی که در دو متغیر ذخیره کردی ببره.
یعنی برنامه یا بازی که اجرا شد به اندازه نیاز رزولیشن رو ببره و در
هنگام خارج شدن به حالت اول برگردونده بشده.
امید وارم که دقیق موضوعی رو که گفتم متوجه شده باشی.
موفق باشی
اما بهتره بگم این به روش تغییر رزولیشن است.
اگه روش دیگه ای بدون تغییر رزولیشن نیاز داشتی
در خدمت شما هستم

مرد مباح
06-06-2006, 18:40
پيشنهاد من اينه كه اندازه صفحه اصلي برنامت خيلي بزرگ نباشه.
چون از مشخصات يك برنامه فراگير حداقل اينه كه تو همه كامپيوترها قابل اجرا باشه.
اگه يكي كارت گرافيك 2 مگابايتي داشته باشه (معمولا تو شركتهايي كه فقط كار حسابداريشون با كامپيوتره ميبيني)
اون وقت برنامت براي اون قشر بي ارزش ميشه.

codemaster
06-06-2006, 23:24
پيشنهاد من اينه كه اندازه صفحه اصلي برنامت خيلي بزرگ نباشه.
چون از مشخصات يك برنامه فراگير حداقل اينه كه تو همه كامپيوترها قابل اجرا باشه.
اگه يكي كارت گرافيك 2 مگابايتي داشته باشه (معمولا تو شركتهايي كه فقط كار حسابداريشون با كامپيوتره ميبيني)
اون وقت برنامت براي اون قشر بي ارزش ميشه.

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

مثلا" دکمه ای که از انتهای راست صفحه 5 پیکسل فاصله دارد:
;button1.left = form.width - button.width -5

soldier
06-06-2006, 23:36
سلام
می تونی هم یه کار خیلی خیلی خیلی ساده
تمام کپوننت های فرم رو انتخاب کنی
و قسمت : Anchors
تمامی آنها را خاموش(False) کنی
اگر درست نشد بهتره akLeft , AkTop فالس کنی
و akRight , akBottom رو ترو کنی
بستگی به طراحی فرم داره هر دو رو امتحان کن.

مرد مباح
07-06-2006, 12:53
ميتوني اجزای صفحه رو بر اساس فاصله از هم طراحی کنی و در این صورت هیچ وقت اجزای فرم از تصویر خارج نمی شوند.

مثلا" دکمه ای که از انتهای راست صفحه 5 پیکسل فاصله دارد:
;button1.left = form.width - button.width -5

كاملا با نظر شما موافقم.
ولي اين كار يك دانش برنامه نويسي قوي ميخواد .
و اگه صفحه به صورت فشرده ايجاد شده باشه امكان اين كار نيست.
ميتو.ني از صفحه هاي چند تايي استفاده كني.

يك چيزي مشابه بازي كه در لينك زير خودم گذاشتم.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

البته تاكيد من روي تعداد صفحاتش در اندازهاي بسيار كم و تعداد كامپوننتهاي زياد براي كار اين بازيه.

soldier
07-06-2006, 13:15
سلام
اگر پروبرتي : Anchors
تمامی آنها را فالس کنی
درست مي شه تمام صفحه رو پر ميكنه

hp1361
07-06-2006, 15:11
اقا خيلي ممنون كه راهنمايي كردين
امروزامتحان ميكنم

البته به يك نكته اشاره كنم واون اينكه من مثلا قبل از طرح اين سوال اندازه ي فرمم رو در رزولوشن 800×600 تنظيم كردم تا در سيستم هايي كه بيشتر از اونو پشتيباني نميكنه مشكل نداشته باشه . اما وقتي رزولوشن مانيتورم رو به 1024×768 برگردوندم همه عناصر به سمت چپ برنامه چسبيدند . جاگيريشون بهم نخوردها . فقط همه در اندازه كوچيكتر سمت چپ برنامه قرار گرفتند

حالا ميرم با ابن Anchors ور ميرم ببينم چيميشه

بازم ممنون كه جواب دادين

يا حق

مرد مباح
07-06-2006, 23:12
شما خاصيت كادر برنامه رو عوض كنيد.
يعني از حالت Sizable مثلا به Dialog تغيير بدين.
فكر كنم موثره.

soldier
08-06-2006, 11:04
نه اين منظورش اينه كه رزوليشن كامژيوتر تغيير كرد.
مرد مباح اين روش اصلآ بدرد نمي خوره.
چون وقتي كه رزوليشن تغيير كرد كه كل برنامه بهم مي خوره.
حتي اگه دايلوگ هم باشه.

مرد مباح
08-06-2006, 12:02
درسته.
ولي دوستمون در بالا گفت كه با تغيير رزولوشن برنامه به هم نريخته.

soldier
08-06-2006, 13:19
سلام
رزوليشن كه اندازه فرم را تغيير نمي ده كه بخواهي dialog بزاري.