• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ekran çözünürlügü

  • Konbuyu başlatan Konbuyu başlatan akd
  • Başlangıç tarihi Başlangıç tarihi

akd

Destek Ekibi
Destek Ekibi
Katılım
14 Ağustos 2004
Mesajlar
1,119
Excel Vers. ve Dili
2003
Merhaba arkadaşlar,
Ben userformu ekran çözünürlüğüne göre ayarlamak istiyorum,
ve üzerindeki textbox, combobox, listbox ve commantbutton larda aynı oranda büyüsün küçülsün istemiştim,
ama userform ekrana göre büyüyor digerleri formun sol üst köşesinde kalıyor,
bunu nasıl yapabilirim yardımcı olacak arkadaşlara,
şimdiden teşekkürler...
 
Merhaba;

Bir ara da aşağıdaki kodları denersiniz.

Bu kodlar UserForm modulüne yazılacak olup, kodlardaki X1 = 800 ve Y1 = 600 satırlarında 800 ve 600 değerleri yerine (eğer değişik ise), UserForm'u hazırladığınız sizin bilgisayardaki ekran çözünürlük değerlerini girmeniz gerekmektedir.

Kod:
Private Declare Function GetSystemMetrics32 Lib "User32" Alias "GetSystemMetrics" _
(ByVal nIndex As Long) As Long
'
Private Sub UserForm_Initialize()
Dim X1 As Long, Y1 As Long, Y2 As Long, X2 As Long
Dim CX As Double, CY As Double
Dim MyCtrl As Control
X1 = [B][COLOR=red]800[/COLOR][/B]
Y1 = [B][COLOR=red]600[/COLOR][/B]
X2 = GetSystemMetrics32(0)
Y2 = GetSystemMetrics32(1)
CX = X2 / X1
CY = Y2 / Y1
Me.Width = Me.Width * CX
Me.Height = Me.Height * CY
For Each MyCtrl In Me.Controls
MyCtrl.Top = MyCtrl.Top * CY
MyCtrl.Left = MyCtrl.Left * CX
MyCtrl.Width = MyCtrl.Width * CX
MyCtrl.Height = MyCtrl.Height * CY
On Error Resume Next
MyCtrl.Font.Size = MyCtrl.Font.Size * CY
On Error GoTo 0
Next
End Sub
 
Merhaba arkadaşlar,
ilginiz için çok çok teşekkürler,
Sayın raider yazmış olduğunuz kodu malesef çalıştıramadım.
 
hiç birşey olmuyor
kodun ha varlığı ha yoklugu
 
kodun ha varlığı ha yoklugu


Kadir bey, bir konuda anlaşalım önce...

Bu kodlar UserForm modulüne yazılacak olup, kodlardaki X1 = 800 ve Y1 = 600 satırlarında 800 ve 600 değerleri yerine (eğer değişik ise), UserForm'u hazırladığınız sizin bilgisayardaki ekran çözünürlük değerlerini girmeniz gerekmektedir.


Yukarıda bahsettiğim gibi, UserForm'u hazırladığınız bilgisayardaki ekran çözünürlüklerini yukarıdaki koda girmeniz gerekir.

Benim, sizin son mesajınızdan anladığım kadarıyla şu andaki ekran çözünürlüğünüz 800 X 600 . Bu nedenle, herhangibir değişiklik olması mümkün değil.

Eğer, çözünürlüğü 1024 X 768 olan bir bilgisayarda yukarıdaki kodu denerseniz, UserForm'un görüntüsünde değişiklik olması gerekir.

Unutmayın...... kodları hazırladığınız bilgisayardaki ekran çözünürlük değerlerini bir kereye mahsus olarak yukarıdaki koda gireceksiniz. Daha sonra, ekran çözünürlüğü değişik olan başka bir bilgisayarda deneyin veya kendi ekran çözünürlüğünüzü değiştirip, tekrar deneyin.
 
Sayın Raider çok özür diliyerek söylüyorum,
bu kodu denedinizmi,
Ekran çözünürlüğünü 800 x 600 de yaptım aynı ,
Kodun ilgili yarlarini degiştirip 1024 x 768 yaptım yine aynı "tın yok" hiç birşey olmuyor...
selamlar
 
Merhaba Kadir bey;

bu kodu denedinizmi,

O satırları hazırlarken gayet tabii ki bazı denemeler yaptım.

Þimdi benim monitörün ekran çözünürlüğü şu anda 1024 X 768.

Yukarıdaki kodu da X1 = 800 ve Y1 = 600 olarak kullanıyorum ve UserForm' daki değişikliği gözlemleyebiliyorum.

Bu konuda başka bir üyemizin mesajı da olmadığına göre, sizi veya beni haklı gösterecek herhangibir bulgu şu ana kadar yok. :mrgreen:

Belki de, sizin diğer başka kodlarınız problem çıkartıyor olabilir...... onu da benim buradan görmem mümkün değil.

Kolay gelsin...
 
merhaba sayın raider,
Size örnek çalışmamı gönderiyorum,
kodları bir kontrol edermisiniz gözümden kaçan ne imiş çok merak
ettim doğrusu.
Birde bilgisayarın ekran çözünürlüğünü kendisi alğılayıp ona göre
düzenleme yapamazmı , böyle bir kod veya api yokmu acaba...
Sayğılar...
 
Tekrar merhaba Kadir bey;

Gönderdiğiniz dosyayı indirdim.

1) Benim bilgisayarımda ekaran çözünürlükleri 800 X 600

2) Ã?rnek dosyadaki kodlar da X1 = 800 ve Y1 = 600

Bu durumda, dosyanın design (tasarım) aşamasında ve run (çalıştırılma) aşamasındaki UserForm resimleri aşağıdadır.

Yani, 800 X 600 çözünürlükte hazırlanan bir UserForm 1024 X 768 çözünürlükte bu şekilde görünmektedir.

Birde bilgisayarın ekran çözünürlüğünü kendisi alğılayıp ona göre
düzenleme yapamazmı , böyle bir kod veya api yokmu acaba...

Zaten hazırladığım kod bu işi yapmaktadır. Yani, UserForm'un hazırlandığı çözünürlüğü siz koda bir kereye mahsus olarak girdikten sonra, değişik çözünürlükteki bilgisayarlarda UserForm otomatik olarak, üzerindeki kontrollerle birlikte en, boy, yükseklik, font gibi özellikleri API ile güncellenmektedir.

Sizin yapmak istediğiniz, bundan daha değişik nedir acaba ???
 
Sayın raider çok afedersiniz,
Sizin kodunuzu şimdi anladım.

ben anlatmak istedigimi anlatamamışım,
Ben userformu 250x350 hazırlayıp bir buton vasıtasıyle userformun o anki ekran
çözünürlüğü ne ise maksimum o boyutlara büyümesini ve aynı orantılarla
userform üzerindeki diger textbox listbox vs.. lerinde büyümesini sorduğumu
sanıyordum , iletişim bozukluğu olmuş.
Çok özür dilerim.
Saygılar selamlar...
 
Merhaba Kadir bey;

O zaman bir de şunu deneyin...

Kod:
Private Sub UserForm_Initialize()
Dim X1 As Long, Y1 As Long, Y2 As Long, X2 As Long
Dim CX As Double, CY As Double
Dim MyCtrl As Control
X1 = Application.Width
Y1 = Application.Height
X2 = Me.Width
Y2 = Me.Height
CX = X1 / X2
CY = Y1 / Y2
Me.Width = X1
Me.Height = Y1
For Each MyCtrl In Me.Controls
MyCtrl.Top = MyCtrl.Top * CY
MyCtrl.Left = MyCtrl.Left * CX
MyCtrl.Width = MyCtrl.Width * CX
MyCtrl.Height = MyCtrl.Height * CY
On Error Resume Next
MyCtrl.Font.Size = MyCtrl.Font.Size * CY
On Error GoTo 0
Next
End Sub
 
Moderatör tarafında düzenlendi:
Merhaba Sayın raider,
Valla harikasınız, muhteşemsiniz...
Çok çok teşekkürler,
Herşey gönlünüzce olsun,
Selamlar...
 
ekran çözünürlüğü hakkında

Merhaba arkadaşlar

Sn. Haluk Bey ekran çözünürlüğü ayarlama ile ilgili konuda kod örneği vermiş.

Kod:
Private Sub UserForm_Initialize()[/COLOR]
[COLOR=red]Dim X1 As Long, Y1 As Long, Y2 As Long, X2 As Long[/COLOR]
[COLOR=red]Dim CX As Double, CY As Double[/COLOR]
[COLOR=red]Dim MyCtrl As Control[/COLOR]
[COLOR=red]X1 = Application.Width[/COLOR]
[COLOR=red]Y1 = Application.Height[/COLOR]
[COLOR=red]X2 = Me.Width[/COLOR]
[COLOR=red]Y2 = Me.Height[/COLOR]
[COLOR=red]CX = X1 / X2[/COLOR]
[COLOR=red]CY = Y1 / Y2[/COLOR]
[COLOR=red]Me.Width = X1[/COLOR]
[COLOR=red]Me.Height = Y1[/COLOR]
[COLOR=red]For Each MyCtrl In Me.Controls[/COLOR]
[COLOR=red]MyCtrl.Top = MyCtrl.Top * CY[/COLOR]
[COLOR=red]MyCtrl.Left = MyCtrl.Left * CX[/COLOR]
[COLOR=red]MyCtrl.Width = MyCtrl.Width * CX[/COLOR]
[COLOR=red]MyCtrl.Height = MyCtrl.Height * CY[/COLOR]
[COLOR=red]On Error Resume Next[/COLOR]
[COLOR=red]MyCtrl.Font.Size = MyCtrl.Font.Size * CY[/COLOR]
[COLOR=red]On Error GoTo 0[/COLOR]
[COLOR=red]Next[/COLOR]
[COLOR=red]End Sub[/COLOR]
[COLOR=red]
Fakat ben bunu nasıl çalıştıracağımı anlayamadım.

yardımcı olabilirseniz sevinirim.

çok teşekkürler

kolay gelsin
 
Merhaba arkadaşlar

Sn. Haluk Bey ekran çözünürlüğü ayarlama ile ilgili konuda kod örneği vermiş.

[vb:1:c36d7a0b56]Private Sub UserForm_Initialize()
Dim X1 As Long, Y1 As Long, Y2 As Long, X2 As Long
Dim CX As Double, CY As Double
Dim MyCtrl As Control
X1 = Application.Width
Y1 = Application.Height
X2 = Me.Width
Y2 = Me.Height
CX = X1 / X2
CY = Y1 / Y2
Me.Width = X1
Me.Height = Y1
For Each MyCtrl In Me.Controls
MyCtrl.Top = MyCtrl.Top * CY
MyCtrl.Left = MyCtrl.Left * CX
MyCtrl.Width = MyCtrl.Width * CX
MyCtrl.Height = MyCtrl.Height * CY
On Error Resume Next
MyCtrl.Font.Size = MyCtrl.Font.Size * CY
On Error GoTo 0
Next
End Sub
[/vb:1:c36d7a0b56]
Fakat ben bunu nasıl çalıştıracağımı anlayamadım.

yardımcı olabilirseniz sevinirim.

çok teşekkürler

kolay gelsin

kendi userformunuzun initialize koduna bu kodları eklerseniz çalışacaktır.
 
Haluk hocam ;
Bu kod benimde arşivimde var.
Paylaşımınıza teşekkür ederim.
 
Geri
Üst