مشاهده نسخه کامل
: يكي بگه با اين مشكل رزولوشن چي كار كنم؟
سلام
اقا من برنامه هامو وقتي طراحي ميكنم رزولوشن مانيتور روي 1024×768 اخه با كمتر اين نميتونم
حالا مشكلم اينه كه وقتي برنامه رو روي سيستم ديگه با رزولوشن پايين تر اجرا مي كنيم نصف صفحه ديده نميشه
ممنون (اقا نستا و سولجر عزيز چشمم به شماست)
برادر عزیز
را حل این مشکل اینه که شما باید برای اجرای پنجره برنامه خودتون درصد تنظیم کنید که در هر نوع سایزی از روزلیشن
تمام صفحه رو پر کنه
عزيز ممنونم جواب دادي
اما واضح تر بگي ممنون ميشم يه مثال هم بزن
سلام
این رو بزار توی قسمت 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
سلام
می تونی هم یه کار خیلی خیلی خیلی ساده
تمام کپوننت های فرم رو انتخاب کنی
و قسمت : Anchors
تمامی آنها را خاموش(False) کنی
اگر درست نشد بهتره akLeft , AkTop فالس کنی
و akRight , akBottom رو ترو کنی
بستگی به طراحی فرم داره هر دو رو امتحان کن.
مرد مباح
07-06-2006, 12:53
ميتوني اجزای صفحه رو بر اساس فاصله از هم طراحی کنی و در این صورت هیچ وقت اجزای فرم از تصویر خارج نمی شوند.
مثلا" دکمه ای که از انتهای راست صفحه 5 پیکسل فاصله دارد:
;button1.left = form.width - button.width -5
كاملا با نظر شما موافقم.
ولي اين كار يك دانش برنامه نويسي قوي ميخواد .
و اگه صفحه به صورت فشرده ايجاد شده باشه امكان اين كار نيست.
ميتو.ني از صفحه هاي چند تايي استفاده كني.
يك چيزي مشابه بازي كه در لينك زير خودم گذاشتم.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
البته تاكيد من روي تعداد صفحاتش در اندازهاي بسيار كم و تعداد كامپوننتهاي زياد براي كار اين بازيه.
سلام
اگر پروبرتي : Anchors
تمامی آنها را فالس کنی
درست مي شه تمام صفحه رو پر ميكنه
اقا خيلي ممنون كه راهنمايي كردين
امروزامتحان ميكنم
البته به يك نكته اشاره كنم واون اينكه من مثلا قبل از طرح اين سوال اندازه ي فرمم رو در رزولوشن 800×600 تنظيم كردم تا در سيستم هايي كه بيشتر از اونو پشتيباني نميكنه مشكل نداشته باشه . اما وقتي رزولوشن مانيتورم رو به 1024×768 برگردوندم همه عناصر به سمت چپ برنامه چسبيدند . جاگيريشون بهم نخوردها . فقط همه در اندازه كوچيكتر سمت چپ برنامه قرار گرفتند
حالا ميرم با ابن Anchors ور ميرم ببينم چيميشه
بازم ممنون كه جواب دادين
يا حق
مرد مباح
07-06-2006, 23:12
شما خاصيت كادر برنامه رو عوض كنيد.
يعني از حالت Sizable مثلا به Dialog تغيير بدين.
فكر كنم موثره.
نه اين منظورش اينه كه رزوليشن كامژيوتر تغيير كرد.
مرد مباح اين روش اصلآ بدرد نمي خوره.
چون وقتي كه رزوليشن تغيير كرد كه كل برنامه بهم مي خوره.
حتي اگه دايلوگ هم باشه.
مرد مباح
08-06-2006, 12:02
درسته.
ولي دوستمون در بالا گفت كه با تغيير رزولوشن برنامه به هم نريخته.
سلام
رزوليشن كه اندازه فرم را تغيير نمي ده كه بخواهي dialog بزاري.
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.