Latest News

Senin, 08 November 2010

Memperbesar Control secara Otomatis

Mugkin ketika anda membaca judul ini anda pasti kurang mengerti,

Baik kalo begitu saya ambil contoh !

Apabila anda membuat suatu form yang didalamnya terdapat command terus Picture box dsb. Ketika anda memperbesar tampilan form maka control – control yang tadi akan

Tetap seperti semula ukuranya, tetapi dengan menggunakan script dibawah ini ketika

Anda memperbesar tampilan Form maka dengan otomatis control – control akan membesar pula ukuranya menyesuaikan ukuran form.


Langkah – langkahnya seperti berikut :

1. Untuk contoh kita buat Form lalu tambahkan Command satu buah

Lalu ketik script dibawah ini pada form target

Private lngFormWidth As Long

Private lngFormHeight As Long

Private Sub Form_Load()

Dim Ctl As Control

'Tempatkan dimensi form dalam variabel

lngFormWidth = ScaleWidth

lngFormHeight = ScaleHeight

'Tempatkan inisialisasi dimensi control

'dalam property Tag - dengan penanganan

'error untuk controls yang tidak memiliki

'properties seperti Top

'(misalnya: control Line)

On Error Resume Next

For Each Ctl In Me

Ctl.Tag = Ctl.Left & " " & Ctl.Top & " " & _

Ctl.Width & " " & Ctl.Height & " "

Ctl.Tag = Ctl.Tag & Ctl.FontSize & " "

Next Ctl

On Error GoTo 0

End Sub

Private Sub Form_Resize()

Dim D(4) As Double

Dim i As Long

Dim TempPoz As Long

Dim StartPoz As Long

Dim Ctl As Control

Dim TempVisible As Boolean

Dim ScaleX As Double

Dim ScaleY As Double

'Hitung skala-nya

ScaleX = ScaleWidth / lngFormWidth

ScaleY = ScaleHeight / lngFormHeight

On Error Resume Next

'Untuk setiap control yang terdapat di form

For Each Ctl In Me

TempVisible = Ctl.Visible

Ctl.Visible = False

StartPoz = 1

'Baca data dari property Tag

For i = 0 To 4

TempPoz = InStr(StartPoz, Ctl.Tag, " ", _

vbTextCompare)

If TempPoz > 0 Then

D(i) = Mid(Ctl.Tag, StartPoz, _

TempPoz - StartPoz)

StartPoz = TempPoz + 1

Else

D(i) = 0

End If

'Pindahkan control berdasarkan data

'di property Tag dan di skala form

Ctl.Move D(0) * ScaleX, D(1) * ScaleY, _

D(2) * ScaleX, D(3) * ScaleY

Ctl.Width = D(2) * ScaleX

Ctl.Height = D(3) * ScaleY

'Ganti ukuran huruf

If ScaleX <>

Ctl.FontSize = D(4) * ScaleX

Else

Ctl.FontSize = D(4) * ScaleY

End If

Next i

Ctl.Visible = TempVisible

Next Ctl

On Error GoTo 0

End Sub

2. Yang terakhir anda tinggal menjalankanya

Tekan F5

Tidak ada komentar:

Posting Komentar