PDA

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



سنبله کار
چهارشنبه 22 شهریور 1385, 18:11 عصر
باسلام
برای بدست آوردن رزولیشن صفحه نمایش کاربران برنامه و تنظیم سایز اشیاء متناسب با آن چه روشی را پیشنهاد می کنید ؟

sarami
چهارشنبه 22 شهریور 1385, 21:59 عصر
بهترین کار طراحی اشیاء در یک رزولیشن و سپس در هنگام لود شدن نرم افزار با استفاده از توابع API تغییر رزولیشن کامپیوتری که برنامه رو باز میکنه به رزولیشن زمان طراحی و در هنگام خروج باز گشت به رزولیشنی که قبلا بوده همانند اون چیزی که در Game ها اتفاق می افته...
دانلود نمونه برنامه (http://www.box.net/public/g59145pbop)
درپایان من این برنامه رو از خود این سایت دانلود کردم فکر میکنم شاپرک جان زحمت کشیده بودن مهندس تاپیک تکراری با قیچی سانسور مواجه میشه فرقی نمی کنه کیه ها:قهقهه:

سنبله کار
شنبه 25 شهریور 1385, 08:44 صبح
مهندس جام ممنونم ولی به چشمم نخورد .
حالا هم اگه شما دستور بدی و لینکشو بهم بگی خودم قیچیش می کنم .
ضمنا در مورد تغییر رزولیشن خیلی مطلب دیدم البته بیشتر تو VB اما به نظرم کار جالبی نیست که ما موقع بالا اومدن برناممون رزولیشن کاربر بیچاره رو تغییر بدیم این اصلا User freindly نیست چون ممکنه در طول روز به طور متناوب از برنامه ما استفاده کنه و بخواد اونو تو Task نگه داره اونوقت باید یا از رزولیشن دلخواه خودش صرف نظر کنه یا از برنامه ما .
ولی اگه برنامه طوری طراحی بشه ( حالا نه صد در صد ) که با رزولیشن های متفاوت تغییر سایز بده بهتره .
اگه نمونه ای فقط برای بدست آوردن رزولیشن دارید ممنون می شم .

سنبله کار
شنبه 01 مهر 1385, 15:44 عصر
کسی که نظری نداد یک راهی به نظرم رسید که جواب داد به این صورت که هنگام اجرای برنامه فرم اول که اندازه ثابتی داره رو مورد بررسی قرار بدیم و ببینیم در هر رزولیشن عدد left و Top اون چقدر هست به این صورت می تونیم رزولیشن صفحه رو بدست بیاریم .

samaneh_h
یک شنبه 02 مهر 1385, 08:37 صبح
منم همین مشکل رو دارم ممکنه بیشتر توضیح بدین یعنی اون فرمی که تو استارت آپ باز می‌شه رو باید چک کنیم؟

سنبله کار
دوشنبه 03 مهر 1385, 08:25 صبح
بله همینطوره در قیمت onload اون فرم با نوشتن این کد ساده میشه رزولیشن رو تشخیص داد
Select Case Form.WindowLeft
Case Is > 6000
Msgbox "Resulation = 1024"
Case 4500 To 6000
Msgbox "Resulation = 800"
Case Is < 4500
Msgbox "Resulation = 640"
End Select

شاپرک
دوشنبه 03 مهر 1385, 09:15 صبح
در VB از این میشه استفاده کرد :



ResWidth = Screen.Width \ Screen.TwipsPerPixelX
ResHeight = Screen.Height \ Screen.TwipsPerPixelY
ScreenRes = ResWidth & "x" & ResHeight
MsgBox (ScreenRes)

سنبله کار
دوشنبه 03 مهر 1385, 09:22 صبح
ولی تو اکسس Screen پیدا نکردم
شما چیزی معادلش سراغ دارید ؟

شاپرک
دوشنبه 03 مهر 1385, 09:31 صبح
روش شما درسته من روش Vb رو گفتم .

sarami
دوشنبه 03 مهر 1385, 09:32 صبح
بدلیل اینکه فرم های وبی داری Hwnd خودشون هستن ولی در اکسس کل برنامه دارای یک Hwnd هستش برای اینکار باید از کد معادل زیر برای Screen استفاده کنین.
Screen.ActiveForm

شاپرک
دوشنبه 03 مهر 1385, 09:41 صبح
جالبه .... پس اکسس یک hwnd داره !

سنبله کار
دوشنبه 03 مهر 1385, 09:44 صبح
ببخشید مهندس جون منظورمو خوب نگفتم
اینی که شما گفتید درسته اما چطور میشه ازش برای بدست آوردن رزولیشن استفاده کرد چون Width و Height مربوط به فرم اکتیو رو می ده نه رزولیشن صفحه نمایشو .

sarami
دوشنبه 03 مهر 1385, 10:51 صبح
شرمنده من فقط با اون پست خواستم بگم که دنبال Screen نگردین تو API چیزی برای رزولشن نداریم؟

samaneh_h
دوشنبه 03 مهر 1385, 10:57 صبح
سنبله کار اضیض ،در حر ثورط 640 نشون می‌ده :(

سنبله کار
دوشنبه 03 مهر 1385, 11:01 صبح
اگه کد نویسیتون هم مثل جمله بالا باشه ( 3 تا غلط املائی ) همون 640 هم که داده خیلی عالیه .
:قهقهه:
به نکات زیر توجه بفرمایید :
1- مقدار فضای دیتل فرم و size پنجره فرم رو به کمترین مقدار کاهش بدید.
2- Autoresize غیر فعال باشه .
3- Autocenter فعال باشه .
حالا دوباره بعد از هر بار تغییر رزولیشن امتحان کنید حتما جواب میده .

mohammadgij
سه شنبه 04 مهر 1385, 10:47 صبح
من نمی دونم درست متوجه شدم یا نه اما این فایل رو ببینید

البته من تا جایی که یادم میاد از یکی از مباحث فروم خودمون دانلودش کردم

samaneh_h
سه شنبه 04 مهر 1385, 11:36 صبح
اگه کد نویسیتون هم مثل جمله بالا باشه ( 3 تا غلط املائی ) همون 640 هم که داده خیلی عالیه .
:قهقهه:
به نکات زیر توجه بفرمایید :
1- مقدار فضای دیتل فرم و size پنجره فرم رو به کمترین مقدار کاهش بدید.
2- Autoresize غیر فعال باشه .
3- Autocenter فعال باشه .
حالا دوباره بعد از هر بار تغییر رزولیشن امتحان کنید حتما جواب میده .

yes dorost shod

Mehrdadtest1
سه شنبه 12 آذر 1398, 21:36 عصر
دمت گرم :تشویق::تشویق::تشویق: