PDA

View Full Version : مشکل در ریزولوشن و نحوه نمایش



ALIreza_nil
دوشنبه 19 مرداد 1383, 10:35 صبح
با سلام

من یک برنامه دارم تهیه می کنم که ریزولوشنی که دارم باهاش کار می کنم 1280*1024
هست
حالا سئوالم اینکه فرم های من در یک سیستم با ریزولوشن های دیگه سایز و انداره هایش به هم میخوره چطوری می تونم جلوی این اتفاق را بگیرم تا همیشه در هر
ریزولوشنی سایز فرم ها به هم نخوره


متشکر
:)

nasr
دوشنبه 19 مرداد 1383, 12:35 عصر
اول برنامه را با هر رزولوشنی که دوست داری طراحی کن

بعد هنگام باز شدن برنامه رزولوشن کامپیوتر را هرچی که هست تغییر بده و به رزولوشن مورد نظر تبدیل کن

هنگام بسته شدن برنامه هم رزولوشن را به همون اولی تبدیل کن

به همین راحتی :سکوت:

Mohammad S
دوشنبه 19 مرداد 1383, 12:40 عصر
من یک برنامه دارم تهیه می کنم که ریزولوشنی که دارم باهاش کار می کنم 1280*1024
مجبوری از این رزولوشن استفاده کنی؟!
اگر مجبوری باید بگم هیچ راهی برای شما وجود نداره چون ممکنه سیستمی که قراره برنامه شما روی اون اجرا بشه نتونه این رزولوشن رو ساپورت کنه در نتیجه همه چیز به هم می خوره. ولی اگر می دونی که سیستم مورد نظر می تونه این رزولوشن رو ساپورت کنه، در ابتدای برنامه رزولوشن ویندوز را تغییر بده و در خاتمه برنامه به همان مقدار اولیه باز گردان (همانند بعضی بازیها). دستورات مربوط به این کار هم در همین فروم فکر می کنم قبلا مطرح شده که با جستجو می تونی پیداش کنی.

ولی به نظر من اگه مجبور نیستی از این رزولوشن استفاده کنی، برای حالت 600*800 کار کن که اکثر سیستم های امروزی ساپورت می کنن. حالا اگه سیستمی که برنامه روی اون اجرا می شه رزولوشن بالاتری داشته باشه،‌ مشکلی برای برنامه شما پیش نخواهد آمد.
موفق باشید.

vcldeveloper
سه شنبه 20 مرداد 1383, 08:20 صبح
در برنامه یه تابع بزار که وضوح تصویر رو چک کنه (با screen.width و screen.hieght) بعد اگر وضوح تصویر 1024در 768 نبود از متد ScaleBy() فرم اصلی برنامه برای کوچک کردن کلیه کنترلهای برنامه به یک نسبت مشخص استفاده کن.

ALIreza_nil
سه شنبه 20 مرداد 1383, 09:18 صبح
متشکر از راهنمایتون
:flower:

ALIreza_nil
سه شنبه 20 مرداد 1383, 09:20 صبح
من این کار را کردم ولی به نظرم کنترل های برنامه یکم بیریخت میشه
:)

vcldeveloper
سه شنبه 20 مرداد 1383, 12:00 عصر
من این کار را کردم ولی به نظرم کنترل های برنامه یکم بیریخت میشه
باید یکمی با عددهاش سر و کله بزنید تا بهترین حالت ممکن رو بدست بیارید.

ALIreza_nil
سه شنبه 20 مرداد 1383, 13:12 عصر
متشکر از راهنمایتون
امتحان می کنم
:)

فرزاد دلفی باز
چهارشنبه 21 مرداد 1383, 23:04 عصر
دوست عزیز ALIreza_nil :
تکه کد زیر برای تنظیم رزولوشن سیستم کاربرد داره اول یک Procduar تعریف می کنید و بعد :

;(Procedure TForm1.ChangeResolution(X,Y :integer
var
; IpDevMode:TDeviceMode
begin
; (EnumDisplaySettings(nil,0,IpDevMode)
;IpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT
;IpDevMode.dmPelsWidth:=800
; IpDevMode.dmPelsHeight:=600
;(ChangeDisplaySettings(IpDevMode,0
; end


; ( procedure TForm1.Button1Click(Sender: TObject
var
; IpDevMode:TDeviceMode
begin
:(EnumDisplaySettings(nil,0,IpDevMode
; IpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT
;IpDevMode.dmPelsWidth:=800
; IpDevMode.dmPelsHeight:=600
;(ChangeDisplaySettings(IpDevMode,0
; end