1

Konu: Ekran Çözünürlüğü nü VFP den değiştirmek...

Ekran çözünürlüğünü vfp içinden değiştirme olanağımız varmı acaba..? Yada default 1024*768 olarak exe dosyamızı çağırabilirmiyiz?

Teşekkür ederim...

2

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Genelde bu sorunun cevabi, kullanicinin yerine onun ekran cozunurluguyle oynama.
Gene de kullaniciya sorarak yapmak istersen:

Visual Fox Pro
*SetScreenresolution.prg

Lparameters tnWidth,tnHeight,tnFrequency
 
#Define ENUM_CURRENT_SETTINGS -1
#Define CDS_UPDATEREGISTRY = 0x01
#Define CDS_TEST 0x02
#Define DISP_CHANGE_SUCCESSFUL 0
#Define DISP_CHANGE_RESTART 1
#Define DISP_CHANGE_FAILED -1
#Define DM_PELSWIDTH 0x00080000
#Define DM_PELSHEIGHT 0x00100000
#Define DM_DISPLAYFREQUENCY 0x00400000
 
Local lpDevMode,result
Declare Integer EnumDisplaySettings In win32API ;
    string deviceName,;
    integer modeNum, ;
    string @ lpdevMode
 
Declare Long ChangeDisplaySettings In win32API ;
    string lpDevMode, ;
    integer dwflags
 
lpdevMode = Replicate(Chr(0),512)
 
EnumDisplaySettings(0,ENUM_CURRENT_SETTINGS,@lpdevMode)
 
*!*    ? "Current settings are:",;
*!*        CTOBIN(Substr(m.lpdevMode,109,4),"4RS"),;
*!*        CTOBIN(Substr(m.lpdevMode,113,4),"4RS")
 
* Width and Height
lpdevMode = Stuff(m.lpdevMode,109,4,Int2DWord(m.tnWidth))
lpdevMode = Stuff(m.lpdevMode,113,4,Int2DWord(m.tnHeight))
 
If !Empty(m.tnFrequency)
    lpdevMode = Stuff(m.lpdevMode,121,4,Int2DWord(m.tnFrequency)) && Frequency
    lpdevMode = Stuff(m.lpdevMode,41,4,;
        Int2DWord(Bitor(DM_PELSWIDTH,DM_PELSHEIGHT,DM_DISPLAYFREQUENCY))) && dmFields
Else
    lpdevMode = Stuff(m.lpdevMode,41,4,;
        Int2DWord(Bitor(DM_PELSWIDTH,DM_PELSHEIGHT))) && dmFields
Endif
 
result = ChangeDisplaySettings(m.lpdevMode,CDS_TEST)
 
If !( result = DISP_CHANGE_SUCCESSFUL )
    Messagebox("Mode is not supported",0+48,'Monitor settings')
Else
    ChangeDisplaySettings(m.lpdevMode,0)
TEXT to m.lcSetting noshow
Your screen resolution has been changed.
Press [Yes] to keep.
 
Will automatically restore your resolution in 30 seconds.
ENDTEXT
    If Messagebox(m.lcSetting,4+64,'Monitor settings',30000) != 6
        ChangeDisplaySettings(0,0) && restore
    Endif
Endif
 
Function Int2DWord(tInt)
    Local lcDWord,ix
    lcDWord = ''
    For ix=1 To 4
        lcDword = m.lcDword + Chr( Int(m.tInt/256^(m.ix-1)) % 256 )
    Endfor
    Return m.lcDword
Endfunc

3

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Bu arada kod eski Int2DWORD yerine VFP9daki  Bintoc() yeniliklerini kullanabilirsin.
BinToc(m.tnWidth,"4RS") gibi

4

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Gökçe Özçınar yazdı:

Ekran çözünürlüğünü vfp içinden değiştirme olanağımız varmı acaba..? Yada default 1024*768 olarak exe dosyamızı çağırabilirmiyiz?

Teşekkür ederim...


Çetin!in dediği gibi oyun ya da interaktif bir görsel eğitim programı yapmıyorsan, pek hoş birşey değil bence. Ben mesela bir muhasebe programının beni belli bir rezülasyona zorlamasına kızardım doğrusu...

Haksızlıklar karşısında susanlar, dilsiz şeytanlardır!
www.metinemre.com

5

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Bunu istememin sebebi piyasada hala 1024*768 çözünürlüğün altında birçok çalışanın olması. Ve bu kullanıcıların maalesef "BİLİNÇSİZLİĞİ" . Bazı formlarım çok dolu ve command buton vb. leri max width' e göre ayarlamam imkansız. Demo programı indiripte kullanmaya çalışan bazı müşterilerin telefon edip "Hasar analiz modülünde  ÇIKIŞ DÜĞMESİ YOK"  laflarından ve çözünürlüklerini telefonla 20 dakikada ayarlatmaktan bıktım. Onun yerine "Bu prg en iyi şu çözünürlükte çalışır" Uyarısını yazdığımdada "... yani şimdi hangi tuşa basmamız gerekiyo" sorusu ile karşılaşıyorum. Keşke şu kullanıcılar bilgisayar kullanmanın sadece fiyat pazarlığı olmadığını anlayabilseler.

6

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Gökçe Özçınar yazdı:

Bunu istememin sebebi piyasada hala 1024*768 çözünürlüğün altında birçok çalışanın olması. Ve bu kullanıcıların maalesef "BİLİNÇSİZLİĞİ" . Bazı formlarım çok dolu ve command buton vb. leri max width' e göre ayarlamam imkansız. Demo programı indiripte kullanmaya çalışan bazı müşterilerin telefon edip "Hasar analiz modülünde  ÇIKIŞ DÜĞMESİ YOK"  laflarından ve çözünürlüklerini telefonla 20 dakikada ayarlatmaktan bıktım. Onun yerine "Bu prg en iyi şu çözünürlükte çalışır" Uyarısını yazdığımdada "... yani şimdi hangi tuşa basmamız gerekiyo" sorusu ile karşılaşıyorum. Keşke şu kullanıcılar bilgisayar kullanmanın sadece fiyat pazarlığı olmadığını anlayabilseler.


oooo hocam sen çok şey istiyorsun. onlar olmazsa proğramcıları kim sinir edecek smile

7

Re: Ekran Çözünürlüğü nü VFP den değiştirmek...

Hocam bence kullanıcıyı suçlamak yerine sorunları birazda kendimizde arayalım.
Bence microsoft bu işi kolaylaştırabilirdi.
Programa öyle bir komut eklemek en mantıklısı. Yanlız dikkat, bazı kullanıcılar gözleri seçemediği için büyük çözünürlük kullanıyor. Ben 17'' ekran kullanıp 800*600 çözünürlük kullanan insanlar tanıyorum.