mehdi_doraghi
شنبه 22 اردیبهشت 1386, 16:52 عصر
با سلام به تمامی برنامه نویسان
می خواهم وقتی که برنامهام اجرا شود رزلیشن مورد نظر (600*800) یا غیره بطور اتوماتیک عوض شود
javad_hosseiny
شنبه 22 اردیبهشت 1386, 18:33 عصر
در این مورد هم اگر جستجو می کردید زودتر به جواب می رسیدید
----
از طریق کدهای api می تونید اینکار رو انجام بدید ولی پیشنهاد می کنم به جای اینکار (تغییر رزولیشن) کاری بکنید که صفحه شما در تمامی رزولیشن های به خوبی کار کند
(اگر از تصویر در فرمهایتان استفاده کرده اید مشابه طراحی صفحات وب جاهای ثابت تصویر را به عنوان ضمینه برای تکرار (جهت افزایش طول و عرض صفحه به هنگام افزایش رزولیشن) استفاده کنید)
(و اگر فرم بدون تصویر (با کلیه آیتم و پارامتر و ...) هست از خصلت anchor خود آبجکت ها می تونید برای اینکار استفاده کنید)
----------
نهایتا تابع مربوطه جهت انجام اینکار (تغییر رزولیشن صفحه نمایش) فقط دقت کنید از اعداد آننرمال جهت اینکار (تغییر رزولیشن) استفاده نکنید
*=changeres(1024,768)
*=changeres(800,600)
*=changeres(640,480)
*********
FUNCTION ChangeRes
LPARAMETERS tnWidth, tnHeight
LOCAL lnWidth, lnHeight, lnModeNum, lcDevMode
*!* Valores
lnModeNum = 0
lcDevMode = REPLICATE(CHR(0), 156)
lnWidth = IIF(EMPTY(tnWidth), 800, tnWidth)
lnHeight = IIF(EMPTY(tnHeight), 600, tnHeight)
*!* Instrucciones DECLARE DLL para cambiar resolución
DECLARE INTEGER EnumDisplaySettings IN Win32API ;
STRING lpszDeviceName,;
INTEGER iModeNum, ;
STRING @lpDevMode
DECLARE INTEGER ChangeDisplaySettings IN Win32API STRING @lpDevMode, INTEGER dwFlags
*!* Bucle para obtener todos los modos disponibles
DO WHILE EnumDisplaySettings(NULL, lnModeNum, @lcDevMode) <> 0
lnModeNum = lnModeNum +1
ENDDO
*!* Configurar la structura DevMode
lcDevMode = STUFF(lcDevMode, 41, 4, LongToStr(1572864))
lcDevMode = STUFF(lcDevMode, 109, 4, LongToStr(tnWidth)) && Ancho
lcDevMode = STUFF(lcDevMode, 113, 4, LongToStr(tnHeight)) && Alto
*!* Cambiar resolucion
ChangeDisplaySettings(@lcDevMode, 1)
ENDFUNC
*!* Convierte un long integer a un 4-byte character string
*!* Sintaxis: LongToStr(lnLongVal)
*!* Valor devuelto: lcRetStr
*!* Argumentos: lnLongVal
*!* lnLongVal especifica el long integer a convertir
FUNCTION LongToStr
LPARAMETERS lnLongVal
LOCAL lnCnt, lcRetStr
lcRetStr = ''
FOR lnCnt = 24 TO 0 STEP -8
lcRetStr = CHR(INT(lnLongVal/(2^lnCnt))) + lcRetStr
lnLongVal = MOD(lnLongVal, (2^lnCnt))
NEXT
RETURN lcRetStr
ENDFUNC
mehdi_doraghi
شنبه 22 اردیبهشت 1386, 18:37 عصر
با تشکر آقای جواد حسینی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.