Optimalkan Koding di VB

20 Desember 2011 Tinggalkan komentar

Ketika pengurangan ukuran aplikasi merupakan hal yang penting, ada beberapa cara yang dapat Anda gunakan untuk membuat coding Anda lebih ringkas. Selain untuk mengurangi ukuran aplikasi di memori, hampir semua teknik optimasi berikut juga akan mengurangi ukuran file .exe. Seperti keuntungan yang saling melengkapi, sebuah aplikasi dengan ukuran yang lebih kecil akan lebih cepat diload ke memori.

Banyak teknik optimasi menggunakan cara dengan menghapus bagian elemen yang tidak penting dari coding, sementara Visual Basic secara otomatis menghapus elemen-elemen tersebut ketika Anda meng-compile aplikasi Anda, sehingga tidak ada alasan untuk membatasi panjang atau jumlah dari elemen-elemen berikut ini, karena sama sekali tidak berpengaruh dengan ukuran aplikasi:

– Nama-nama pengenal (Identifier names)
– Komentar (Comments)
– Baris kosong (Blank lines).

Tidak ada satupun efek dari elemen-elemen di atas mempengaruhi ukuran dari aplikasi Anda di memori ketika dijalankan sebagai file .exe.

Elemen-elemen lain, seperti variables, forms, dan prosedur, memakan banyak tempat di memori. Ada beberapa cara yang dapat Anda gunakan untuk mengurangi penggunaan memori yang digunakan oleh aplikasi Anda ketika dijalankan sebagai file exe. Cara ini juga dapat mengurangi ukuran coding Anda:

– Kurangi Jumlah Form yang Diload.
– Kurangi Jumlah Control.
– Gunakan Label Menggantikan TextBox.
– Biarkan Data di File Tersimpan di Disk, dan Di-load Ketika Dibutuhkan Saja.
– Atur/Organisasikan Module Anda.
– Pertimbangkan Alternatif untuk Menggunakan Data Bertipe Variant.
– Gunakan Array Dinamik dan Hapus Jika Tidak Digunakan.
– Kosongkan Alokasi yang Digunakan oleh String Atau Variabel Object.
– Hapus “Dead Code” dan Variabel yang Tidak Pernah Digunakan. Berikut penjelasan setiap butir di atas.

* Kurangi Jumlah Form yang Diload

Setiap form yang diload, apakah kelihatan atau tidak, memakan sejumlah memori (bervariasi dengan jumlah dan tipe dari control yang ada di form, ukuran bitmaps di form, dan sebagainya). Gunakanlah perintah untuk menge-load form hanya jika Anda ingin menampilkannya, dan gunakanlah perintah untuk meng-unload form (daripada menyembunyikannya (Hide)) ketika Anda sudah tidak membutuhkannya. Ingatlah, bahwa referensi apapun yang berkaitan kepada properties, methods, atau controls di sebuah form, atau sebuah variabel yang terdapat di suatu form yang dideklarasikan sebagai New, menyebabkan Visual Basic me-load form tersebut.

Ketika Anda meng-unload sebuah form menggunakan metode Unload, hanya bagian dari memori yang digunakan oleh form ini yang dibebaskan. Untuk membebaskan semua memori, hilangkan referensi ke form tersebut dengan menggunakan kata kunci “Nothing”:

Code:

Set Form = Nothing

* Kurangi Jumlah Control

Ketika Anda membuat aplikasi, cobalah untuk menempatkan sedikit mungkin control dalam sebuah form. Jumlah control sebenarnya tergantung pada tipe control dan juga sistem yang digunakan, tapi pada umumnya, form yang memiliki banyak control di dalamnya akan memperlambat dalam pemunculan. Cara untuk mengatasi hal ini adalah dengan menggunakan control array sebisa mungkin, daripada membuat banyak control yang memiliki tipe sama di dalam sebuah form pada saat pendisainan form.

Untuk informasi lebih lanjut mengenai control arrays, lihat “Working with Control Arrays” dalam “Using Visual Basic’s Standard Controls.” Kembali

* Gunakan Label menggantikan TextBox

Kontrol Label menggunakan sumber daya Windows lebih sedikit dibandingkan TextBox, jadi sebaiknya gunakanlah Label untuk menggantikan TextBox sebisa mungkin. Sebagai contoh, jika Anda membutuhkan sebuah control yang bersifat hanya untuk menampilkan teks di dalam sebuah form, akan lebih efisien dengan menggunakan Label.

Bahkan sebuah form entri data yang membutuhkan banyak TextBox dapat menggunakan cara ini. Anda dapat membuat sebuah Label untuk setiap field dan hanya menggunakan sebuah TextBox untuk entri data, pindahkan TextBox ini ke lokasi Label berikutnya ketika Textl mendapat event LostFocus. Untuk membuktikannya, buatlah satu project baru dengan satu form. Tambahkan 3 Label, 1 TextBox, dan 1 Commandbutton ke dalam form tersebut. Buat ukuran ketiga label sama dengan ukuran textbox, lalu copy-kan coding berikut ke editor form yang bertalian.

Code:

Dim i As Integer

Private Sub Command1_Click()
If MsgBox(“Data yang Anda isikan: ” & vbCrLf & _
“Label1 = ” & Label1.Caption & vbCrLf & _
“Label2 = ” & Label2.Caption & vbCrLf & _
“Label3 = ” & Label3.Caption, _
vbInformation + vbYesNo, “Simpan”) = vbYes Then
MsgBox “Data telah disimpan!”, vbInformation, “OK”
Else
EditData
End If
End Sub

Private Sub Form_Load()
i = 0
Text1 = “”
Command1.Caption = “&Simpan”
Label1 = “”: Label2 = “”: Label3 = “”
Label1.BorderStyle = 1
Label2.BorderStyle = 1
Label3.BorderStyle = 1
Text1.Move Label1.Left, Label1.Top
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Text1_LostFocus
End Sub

Private Sub Text1_LostFocus()
i = i + 1
If i = 0 Then
‘Update Label1
Label1.Caption = Text1.Text
‘Pindahkan Textbox ke Label pertama
Text1.Move Label1.Left, Label1.Top
‘Update isi Text1
Text1.Text = Label1.Caption
Text1.SetFocus
ElseIf i = 1 Then
‘Update Label1
Label1.Caption = Text1.Text
‘Pindahkan Textbox ke Label berikutnya
Text1.Move Label2.Left, Label2.Top
‘Update isi Text1
Text1.Text = Label2.Caption
ElseIf i = 2 Then
‘Update Label1
Label2.Caption = Text1.Text
‘Pindahkan Textbox ke Label berikutnya
Text1.Move Label3.Left, Label3.Top
‘Update isi Text1
Text1.Text = Label3.Caption
ElseIf i = 3 Then
‘Update Label1
Label3.Caption = Text1.Text
‘Sembunyikan Text1, karena ini terakhir
Text1.Visible = False
‘Update isi Text1 dgn Label1 jika ingin diulang
Text1.Text = Label1.Caption
End If
End Sub

Sub EditData()
i = -1 ‘Kembali lagi dari awal, agar menjadi 0
‘(-1 + 1)…
Text1.Visible = True
Text1_LostFocus ‘Panggil prosedur Text1_LostFocus
End Sub

Anda dapat membuat sebuah Label seperti tampilan TextBox dengan mengeset property BackColor dan BorderStyle. Walaupun cara ini membutuhkan coding (lihat di dalam prosedur Form_Load di atas), hal ini dapat mengurangi sumber daya yang digunakan untuk sebuah form yang memiliki banyak field TextBox.

* Biarkan Data di File Tersimpan di Disk, dan Di-load Ketika Dibutuhkan Saja

Data yang langsung dimasukkan ke dalam aplikasi Anda saat design time (seperti property atau seperti string dan bilangan yang dimuat langsung di source code) memerlukan memory di aplikasi saat run time. Anda dapat mengurangi memori dengan me-load data dari file atau sumber lainnya tersebut saat run-time. Hal yang sama juga berlaku untuk variabel berupa gambar bitmaps dan strings.

Untuk informasi lebih lanjut mengenai cara menambahkan sumber daya ke aplikasi Anda, lihat “Resource Files” pada “Advanced Programming Features.”

* Atur/Organisasikan Module Anda

Visual Basic me-load Module hanya saat ada “permintaan”, itulah mengapa, aplikasi me-load sebuah module ke memori hanya ketika coding memanggil sebuah prosedur yang terdapat di dalam module tersebut. Jika Anda tidak pernah memanggil sebuah prosedur yang terdapat di suatu module, Visual Basic tidak akan pernah juga me-load module ini. Menempatkan beberapa prosedur yang saling berhubungan dalam satu module yang sama menyebabkan Visual Basic akan me-load satu module ini di saat diperlukan saja. Sangat efisien, bukan?

* Pertimbangkan Alternatif untuk Menggunakan Data Bertipe Variant

Data dengan tipe Variant secara umum memang fleksibel, tetapi data ini juga lebih besar dibandingkan dengan data tipe lainnya. Ketika Anda harus memperhitungkan akibat penggunaan setiap byte yang tersisa di aplikasi Anda, pertimbangkanlah untuk mengganti data bertipe Variant — khususnya juga array bertipe Variant — dengan tipe data lainnya.

Sebuah data yang bertipe Variant menggunakan tempat 16 bytes, dibandingkan dengan 2 bytes untuk yang bertipe Integer, dan 8 bytes untuk bertipe Double. Variabel String menggunakan 4 bytes ditambah 1 byte setiap karakternya di string, tetapi setiap data Variant yang terdiri atas sebuah string memerlukan 16 bytes ditambah 1 byte setiap karakternya di dalam string tersebut. Karena data variant sangat besar, variabel Variant yang bertipe string sering membuat masalah ketika digunakan sebagai variabel Local atau argumen ke sebuah prosedur, karena banyak menggunakan ruang stack.

Bagaimanapun dalam beberapa kasus, menggunakan data bertipe lainnya “memaksa” Anda untuk menambahkan lebih banyak coding untuk menggantikan ke-fleksibilitas-an yang terdapat pada tipe data Variant, sehingga secara murni bisa dikatakan tidak ada pengurangan ukuran aplikasi yang berarti.

* Gunakan Array Dinamik dan Hapus Jika Tidak Digunakan

Pertimbangkanlah untuk menggunakan array dinamis menggantikan array statik (berukuran tetap). Ketika Anda tidak lagi membutuhkan data yang tersimpan di sebuah array dinamis, gunakan “Erase” atau “ReDim Preserve” untuk menghapus data yang sudah tidak dibutuhkan, dan bebaskan/kembalikan memori yang digunakan oleh array. Atau sebagai contoh, Anda apat membebaskan ruang yang digunakan oleh array dinamis dengan coding berikut ini:

Code:

Erase MyArray

Sementara menggunakan “Erase” untuk menghapus array, ReDim Preserve membuat array bisa lebih kecil tanpa harus kehilangan isinya:

Code:

ReDim Preserve MyArray(10, smallernum)

Menghapus sebuah array statik tidak akan mengembalikan atau membebaskan memori yang digunakan oleh array tersebut — tapi hanya menghilangkan nilai dari setiap elemen array ini. Jika setiap elemen array merupakan string, atau sebuah data bertipe Variant yang di dalamnya mengandung sebuah array string, maka menghapus array akan mengembalikan memori dari string atau data Variant itu, bukan memori yang digunakan oleh array tersebut.

* Kosongkan Alokasi yang Digunakan oleh String atau Variabel Object

Ruang yang digunakan oleh variabel string Local (non Statik) dan variabel array, secara otomatis dibebaskan ketika prosedur ini selesai. Tetapi, variabel string dan array global yang dideklarasikan di dalam module tetap ada selama program Anda dijalankan. Jika Anda tetap berusaha untuk menjaga agar ukuran aplikasi sekecil mungkin, Anda harus membebaskan ruang yang digunakan oleh variabel-variabel ini segera setelah digunakan. Anda membebaskan ruang yang digunakan oleh string ini dengan cara membuat string kosong (panjangnya nol):

Code:

SomeStringVar = “” ‘Bebaskan ruang spasi yang digunakan

Sama dengan hal tersebut, Anda dapat membebaskan beberapa (tapi tidak semua) dari ruang yang digunakan oleh sebuah variabel object dengan mengesetnya menjadi “Nothing”. Sebagai contoh, untuk menghapus sebuah variabel object bertipe Recordset, dapat dilakukan dengan cara:

Code:

Private rs As New RecordSet
… ‘<– Coding untuk inisialisasi dan penggunaannya di sini… rs.Close 'Tutup Recordset Set rs = Nothing 'Set referensi ke objek tersebut menjadi Nothing Jika Anda tidak mengeset secara explisit variabel object menjadi Nothing, sebuah referensi ke objek tersebut akan tetap ada di memori sampai aplikasi Anda selesai dijalankan; dan untuk sebuah aplikasi yang menggunakan banyak objek seperti ini, dapat mengakibatkan banyak memakan memori dan memperlambat dalam performansi aplikasi. Anda juga dapat membebaskan ruang dengan cara meng-unload form dan mengeset-nya menjadi "Nothing" daripada menyembunyikannya dengan "Hide", sementara mereka sudah tidak dibutuhkan lagi.

* Hapus "Dead Code" dan Variabel yang Tidak Pernah Digunakan Ketika Anda membangun dan memodifikasi aplikasi Anda, mungkin Anda menyisakan "dead-code", yaitu prosedur yang tidak pernah dipanggil dari coding manapun di aplikasi Anda. Mungkin juga Anda telah mendeklarasikan variabel yang tidak pernah digunakan. Walaupun Visual Basic menghapus konstanta yang tidak pernah digunakan, hal ini tidak menghapus variabel yang tidak digunakan tersebut beserta "dead-code" ketika Anda membuat aplikasi Anda menjadi sebuah file exe. Pertimbangkan dalam menemukan dan menghapus prosedur dan variabel yang tidak pernah digunakan. Sebagai contoh, statement Debug.Print diabaikan ketika run-time .exe, kadang-kadang digunakan setelah menjadi file exe.

Statement Debug.Print dengan string atau variabel seperti argument tidak dicompile ketika Anda membuatnya menjadi file exe. Bagaimanapun, ketika statement Debug.Print milik sebuah fungsi yang dipanggil sebagai argument, statement Debug.Print ini akan diabaikan oleh compiler, tetapi pada pemanggilan fungsi tetap ikut dicompile.

Kemudian, ketika aplikasi dijalankan, fungsi ini dipanggil, tetapi hasil pengembaliannya diabaikan karena fungsi yang tampak sebagai argument untuk Debug.Print akan "mengangkat" ruang dan siklus waktu dalam sebuah file exe, hal ini mungkin berguna untuk menghapus statement tadi sebelum Anda membuat menjadi file exe.

Gunakan perintah Find di menu Edit untuk mencari referensi ke sebuah variabel. Atau, jika Anda menggunakan statement "Option Explicit" dalam setiap module/form, Anda dapat dengan cepat menemukan jika sebuah variabel digunakan di aplikasi Anda dengan cara menghapus atau menutupnya dengan komentar di pendeklarasiannya, lalu coba jalankan aplikasi Anda.

Jika variabel tersebut digunakan, Visual Basic akan menampilkan pesan kesalahan, sedangkan jika Anda tidak menemukan pesan kesalahan, berarti variabel tersebut tidak digunakan. Untuk informasi lebih lanjut mengenai statement Debug.Print, lihat "Printing Information in the Immediate Window" pada "Debugging Your Code and Handling Errors." Sumber: MSDN Library – Januari 2000 (Reducing Code Size)

Best Regards,

Cara Menghemat Ukuran Program Vb

20 Desember 2011 2 komentar

Dalam pembuatan sebuah program, seorang programer harus memperhatikan segi kompabilitas dan stabilitas program yang di buatnya begitu juga dengan ukuran/Size program.
Banyak user yang slalu mengeluhkan akan ukuran sebuah aplikasi yang di gunakanya, sebagai contoh :
Sekarang ini adalah dunianya portable, segala aplikasi di masukan kedalam sebuah media penyimpanan external dengan tujuan bisa dibawa kemana-mana dan bisa di pakai dimana-mana. Sukur klo kapasitas media penyimpananya besar sehingga bisa di masukan banyak aplikasi untuk keperluan yang berbeda tapi bagaimana klo kapasitas media penyimpananya kecil, sementara aplikasi yang diperlukan lumayan banyak, disini pasti kita akan memilih aplikasi yang tidak memakan banyak tempat agar kita dapat memasukan banyak aplikasi kedalam media external kita.

Ketika kita telah selesai membuat program, ada kalanya kita ingin mempublikasikan program kita keorang lain.salah satu caranya itu melalui media internet.tapi ada kendala ketika kita akan meng-upload program kita karena ukuran/sizenya terlalu besar jadi bakalan lama tuh proses uploadnya. Bukan Cuma itu,ketika ada orang yang antusias inginmencoba program kita tapi pas dia liat size program kita.”waduh gede amat sizenya, bakalan lama nih downloadnya”.mungkin kebanyakan orang-orang ngomong kaya gitu dan ujung-ujungnya dia ga jadi deh download & nyoba program kita …:-(

Nah sekarang dah tau kan kenapa penting sekali memperhatikan ukuran program yang kita buat, di atas Cuma sebagian contoh aja. daripada panjang lebar mending Langsung aja ke intinya.

Di dalam visual basic, element Form,Variable dalam bentuk Array multi dimensi & Variable dalam bentuk Colection sangatlah memakan banyak resource memory.jadi klo bisa hindari pemakaian yang sanga berlebih element-element tersebut.

1. Jangan Menggunakan banyak Form
Setiap Form yang diload, baik itu yang sembunyi (visiblenya false) ataupun yang tampak akan memakan resource memory (ukuranya berfariasi tergantung dari jumlah control yang ada di form tersebut).

Usahakan tidak perlu menggunakan Form yang banyak-Banyak karena control yang satu ini lumayan make resource memori. Apabila program anda memang memerlukan form yang banyak maka cara mengakalinya dengan mengload Form ketika di perlukan saja n ketika sudah tidak diperlukan maka usahakan jangan langsung mengset form itu dengan “nothing”.

Code:: Unload form1
Penjelasan: sintak diatas akan mengunload form1, metode ini hanya membebaskan sebagian memori yang diggunakan oleh form tersebut.
Code:: Set form1 = nothing
Penjelasan : sintak diatas akan menghilangkan referensi terhadap form1 dan menghapus semua resource yang dipakai oleh form1.

2. Kurangi Pemakaian Control yang berlebihan
cobalah untuk menempatkan sedikit mungkin control dalam sebuah form. Jumlah control sebenarnya tergantung pada tipe control dan juga sistem yang digunakan, tapi pada umumnya, form yang memiliki banyak control di dalamnya akan memperlambat dalam pemunculan. Cara untuk mengatasi hal ini adalah dengan menggunakan control array sebisa mungkin, daripada membuat banyak control yang memiliki tipe sama di dalam sebuah form pada saat pendisainan form.
Solusinya : jika ingin membuat sebuah control, misalkan kita ingin membuat sebuah Commnad Button, maka buatlah satu command button lalu copy dan paste kan control tersebut sesuai dengan jumlah Command Button yang di perlukan(disini kita akan bermain dengan index pada control).
Mungkin ini adalah hal yang sepele tapi ini cukup efektif untuk memperkecil ukuran program yang kita buat.

3. Ganti Control TextBox dangan Control Label
Control Label menggunakan sumber daya Windows lebih sedikit dibandingkan TextBox, jadi sebaiknya gunakanlah Label untuk menggantikan TextBox sebisa mungkin. Sebagai contoh, jika membutuhkan sebuah control yang bersifat hanya untuk menampilkan teks di dalam sebuah form, akan lebih efisien dengan menggunakan Label.

4. Atur/Rapihkan Modul yang ada
Mungkin banyak yang tidak menyadari bahwa hal sekecil ini pun sangat berpengaruh terhadap ukuran dari program kita.
VB akan me-load Module hanya saat ada “permintaan”, itulah mengapa, aplikasi me-load sebuah module ke memori hanya ketika coding memanggil sebuah prosedur/ fungsi yang terdapat di dalam module tersebut. klo tidak pernah memanggil sebuah prosedur/ fungsi yang terdapat di suatu module, Visual Basic tidak akan pernah juga me-load module ini.
Menempatkan beberapa prosedur yang saling berhubungan dalam satu module yang sama menyebabkan Visual Basic akan me-load satu module ini di saat diperlukan saja

5. Hindari Penggunaan Type Data Variant
data dengan type variant memang bersifat fleksibel tapi type data ini memakan memori yang paling besar dari pada type data yang lain.

Type data dan memory yang diggunakan
byte =1 bytes
integer =2 bytes
long =4 bytes
double =8 bytes
string =9 bytes (+1 bytes per setiap karakter)
variant =16 bytes

Diatas adalah data sebagian type data yang ada di visual basic. Bukan hanya type data saja yang harus diperhatikan tetapi jangkauan/ range dari sebuah type data tersebut, maka kita harus cermat dalam menentukan type data dari sebuah variable.sebisa mungkin hindari type data yang memakan size yang besar di memory termasuk menghindari penggunaan type data variant di sebuah program.

6. Gunakan Array Dinamik dan Hapus Jika Tidak Digunakan
Pertimbangkanlah untuk menggunakan array dinamis menggantikan array statik (berukuran tetap). Ketika kita tidak lagi membutuhkan data yang tersimpan di sebuah array dinamis, gunakan “Erase” atau “ReDim Preserve” untuk menghapus data yang sudah tidak dibutuhkan, dan bebaskan/kembalikan memori yang digunakan oleh array. Atau sebagai contoh, Anda apat membebaskan ruang yang digunakan oleh array dinamis dengan coding berikut ini:

Code:: Erase Array

Sementara menggunakan “Erase” untuk menghapus array, ReDim Preserve membuat array bisa lebih kecil tanpa harus kehilangan isinya:

Code:: ReDim Preserve Array(10, smallernum)

Menghapus sebuah array statik tidak akan mengembalikan atau membebaskan memori yang digunakan oleh array tersebut, tapi hanya menghilangkan nilai dari setiap elemen array ini. Jika setiap elemen array merupakan string, atau sebuah data bertipe Variant yang di dalamnya mengandung sebuah array string, maka menghapus array akan mengembalikan memori dari string atau data Variant itu, bukan memori yang digunakan oleh array tersebut.

7. Kosongkan Nilai yang Digunakan oleh type data String atau Variabel Object
Ruang yang digunakan oleh variabel string Local (non Statik) dan variabel array, secara otomatis dibebaskan ketika prosedur ini selesai. Tetapi, variabel string dan array global yang dideklarasikan di dalam module tetap ada selama program Anda dijalankan. Jika Kita tetap berusaha untuk menjaga agar ukuran aplikasi sekecil mungkin, Kita harus membebaskan ruang yang digunakan oleh variabel-variabel ini segera setelah digunakan. Kita membebaskan ruang yang digunakan oleh string ini dengan cara membuat string kosong (panjangnya nol):

Code:: str = “”

Sama dengan hal tersebut, Kita dapat membebaskan beberapa (tapi tidak semua) dari ruang yang digunakan oleh sebuah variabel object dengan mengesetnya menjadi “Nothing”. Sebagai contoh, untuk menghapus sebuah variabel object bertipe Recordset, dapat dilakukan dengan cara:

Code:: Private rs As New RecordSet
rs.Close ‘Tutup Recordset
Set rs = Nothing ‘Set referensi ke objek tersebut menjadi Nothing

Jika Kita tidak mengeset secara explisit variabel object menjadi Nothing, sebuah referensi ke objek tersebut akan tetap ada di memori sampai aplikasi Anda selesai dijalankan; dan untuk sebuah aplikasi yang menggunakan banyak objek seperti ini, dapat mengakibatkan banyak memakan memori dan memperlambat dalam performansi aplikasi alias lemot.

8. Hapus “Dead Code” dan Variabel yang Tidak Pernah Digunakan
Ketika kita membangun dan memodifikasi aplikasi Anda, mungkin kita menyisakan “dead-code”, yaitu prosedur yang tidak pernah dipanggil dari coding manapun di aplikasi. Mungkin juga kita telah mendeklarasikan variabel yang tidak pernah digunakan. Walaupun Visual Basic menghapus konstanta yang tidak pernah digunakan, hal ini tidak menghapus variabel yang tidak digunakan tersebut beserta “dead-code” ketika kita mengkompile aplikasi Anda menjadi sebuah file exe. Pertimbangkan dalam menemukan dan menghapus prosedur dan variabel yang tidak pernah digunakan. Sebagai contoh, statement Debug.Print diabaikan ketika run-time .exe, kadang-kadang digunakan setelah menjadi file exe.

Statement Debug.Print dengan string atau variabel seperti argument tidak dicompile ketika dibuatnya menjadi file exe. Bagaimanapun, ketika statement Debug.Print milik sebuah fungsi yang dipanggil sebagai argument, statement Debug.Print ini akan diabaikan oleh compiler, tetapi pada pemanggilan fungsi tetap ikut dicompile. Kemudian, ketika aplikasi dijalankan, fungsi ini dipanggil, tetapi hasil pengembaliannya diabaikan karena fungsi yang tampak sebagai argument untuk Debug.Print akan “mengangkat” ruang dan siklus waktu dalam sebuah file exe, hal ini mungkin berguna untuk menghapus statement tadi sebelum Anda membuat menjadi file exe.
Gunakan perintah Find di menu Edit untuk mencari referensi ke sebuah variabel. Atau, jika Anda menggunakan statement “Option Explicit” dalam setiap module/form, Anda dapat dengan cepat menemukan jika sebuah variabel digunakan di aplikasi Anda dengan cara menghapus atau menutupnya dengan komentar di pendeklarasiannya, lalu coba jalankan aplikasi Anda. Jika variabel tersebut digunakan, Visual Basic akan menampilkan pesan kesalahan, sedangkan jika Anda tidak menemukan pesan kesalahan, berarti variabel tersebut tidak digunakan.

9. Petimbangkan Menggunakan Resource
mungkin dengan cara yang satu ini kita dapat mengetahui perubahan size program kita(penurunan yang bisa dibilang sangat lumayan klo menurut saya) .
kita dapat menempatkan file gambar,icon,string ataupun file apaun kedalam sebuah resource, yang nantinya file tersebut kita pakai dalam program.
Sebagai perbandingan :

1.Coba mulai sebuah project dan masukan sebuah bitmap sebagai background sebuah form dengan cara:
Set pada property form (Picture)
2.Masukin dulu ke resource trus masukan sintak berikut:

Code:: Private Sub Form_Load()
Form1.Picture = LoadResPicture(“BACK_GROUND”, vbResBitmap)
End sub

Note:
BACK_GROUND = ID dari bitmap yang telah kita masukan (disini saya beri nilai BACK_GROUND)
vbResBitmap = type resource Bitmap pada VB.
Kemudian compile programnya, trus bandingkan cara yang 1 dan 2. Ternyata program dengan cara 2 ukuranya lebih kecil daripada program yang ke dua.klo ga percaya silahkan di coba….=)

Note :
Di Visual basic kita seringkali menggunakan Comments (komentar) agar dapat memberikan penjelasan atas sintaks yang bersangkutan.pada saat program dicompile semua Comments & baris kosong dianggap tidak ada atau di abaikan jadi menghapus semua comments dan baris kosong tidak akan mengurangi ukuran program kita ketika di load oleh memori.
Sekian dulu tipsnya dan Mudah-mudahan bermamfaat.

Get disk serial number using the file system object (Windows 95/98/ME/NT/2000/2003/XP)

20 Desember 2011 Tinggalkan komentar

‘Note: This code requires a referecne to the Microsoft Scripting Runtime library (SCRRUN.DLL)

Private Sub Form_Load()

‘Show drive serial number for the current drive
MsgBox ” Drive serial number for ” & Left(App.Path, 1) & “: ” & GetDriveSerialNumber
End

End Sub

Public Function GetDriveSerialNumber(Optional ByVal DriveLetter As String) As Long

Dim fso As Object, Drv As Object

‘Create a FileSystemObject object
Set fso = CreateObject(“Scripting.FileSystemObject”)

‘Assign the current drive letter if not specified
If DriveLetter “” Then
Set Drv = fso.GetDrive(DriveLetter)
Else
Set Drv = fso.GetDrive(fso.GetDriveName(App.Path))
End If

With Drv
If .IsReady Then
DriveSerial = Abs(.SerialNumber)
Else ‘”Drive Not Ready!”
DriveSerial = -1
End If
End With

‘Clean up
Set Drv = Nothing
Set fso = Nothing

GetDriveSerialNumber = DriveSerial

End Function

Visual Basic – Pengenalan Windows API (Application Programming Interface)

20 Desember 2011 3 komentar

Window API merupakan kumpulan fungsi-fungsi eksternal yang disediakan library windows untuk mengatur kemampuan dan tingkah laku setiap element di Windows (dari tampilan di desktop hingga alokasi memory) sehingga dapat dimanfaatkan suatu program untuk meningkatkan kemampuan program tersebut, contohnya saja untuk pengaksesan registry windows dengan fasilitas built in visual basic sangat sukar dilakukan, tetapi dengn adanya fasilitas API untuk registry dari library advapi32.dll, pengaksesan tersebut menjadi lebih mudah.

Untuk memasukkan Window API ke dalam proyek Visual Basic, cara yang paling mudah adalah dengan menggunakan program API Viewer yang terdapat di menubar Add-Ins yaitu Add-In Manager. Pilih Loaded API Viewer, lalu buka text file darinya, pilih Win32api.txt.
Project Sederhana Dengan Ekspresi

Program sederhana memanipulasi form standard Visual Basic 6.0

Menggunakan file resource gambarlayar.res diambil/diimport dari jendela explorer Visual Basic dari file: gambarlayar.res
Kontrol yang digunakan pada form1:
– picture1, dengan property visible=false
– command1
– image1, dengan property visible=true

Kode pada jendela form1:

Private Declare Function SendMessage Lib _
“user32” Alias “SendMessageA” _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long

Private Const CCM_FIRST = &H2000
Private Const CCM_SETBKCOLOR = (CCM_FIRST + 1)
Private Const PBM_SETBKCOLOR = CCM_SETBKCOLOR
Private Const WM_USER = &H400
Private Const PBM_SETBARCOLOR = (WM_USER + 9)

Private Declare Sub ReleaseCapture Lib “user32” ()

Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2

Public Function prosesLAH()
Me.MousePointer = 11
Me.Hide
DoEvents
Set Picture1.Picture = LoadResPicture(101, Bitmap)
Picture1.ScaleMode = vbPixels
Picture1.AutoRedraw = True
Picture1.AutoSize = True
Picture1.BorderStyle = vbBSNone
Me.Width = Picture1.Width
Me.Height = Picture1.Height
WindowRegion = BuatRegion(Picture1)
SetWindowRgn Me.hwnd, WindowRegion, True
Me.Show
Me.Refresh
Me.MousePointer = 0
End Function

Private Sub Command1_Click()
Unload Me
End Sub
Private Sub Form_Load()
Me.BackColor = RGB(214, 219, 191)
Set Image1.Picture = LoadResPicture(101, Bitmap)
Call prosesLAH
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, _
x As Single, y As Single)
Dim lngReturnValue As Long

If Button = 1 Then
Call ReleaseCapture
lngReturnValue = SendMessage(Me.hwnd, WM_NCLBUTTONDOWN, _
HTCAPTION, 0&)
End If
End Sub

Public ask As Boolean
Public DE As Integer

Buat module dengan nama module1, Masukkan kode program pada jendela kode module, sebagai berikut:

Public Declare Function SetWindowPos Lib “user32” _
(ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal cx As Long, ByVal cy As Long, _
ByVal wFlags As Long) As Long
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2

Public withFrameFlag As Boolean
Public Declare Function GetPixel Lib “gdi32” (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long
Public Declare Function SetWindowRgn Lib “user32” (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Declare Function CreateRectRgn Lib “gdi32” (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CombineRgn Lib “gdi32” (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Public Declare Function DeleteObject Lib “gdi32” (ByVal hObject As Long) As Long
Public Const RGN_OR = 2
Public xpos As Long
Public ypos As Long
Public Function BuatRegion(skinGbr As PictureBox) As Long
Dim x As Long, y As Long, awalBrsX As Long
Dim RegionSemua As Long, BrsRegion As Long
Dim TransparentColor As Long
Dim pdAwalRegion As Boolean
Dim BrsPada As Boolean
Dim hDC As Long
Dim LebarGbr As Long
Dim TinggiGbr As Long
hDC = skinGbr.hDC
LebarGbr = skinGbr.ScaleWidth
TinggiGbr = skinGbr.ScaleHeight

pdAwalRegion = True: BrsPada = False
x = y = awalBrsX = 0
warnaTransparan = GetPixel(hDC, 0, 0)
For y = 0 To TinggiGbr – 1
For x = 0 To LebarGbr – 1
If GetPixel(hDC, x, y) = warnaTransparan Or x = LebarGbr Then
If BrsPada Then
BrsPada = False
BrsRegion = CreateRectRgn(awalBrsX, y, x, y + 1)

If pdAwalRegion Then
RegionSemua = BrsRegion
pdAwalRegion = False
Else
CombineRgn RegionSemua, RegionSemua, BrsRegion, RGN_OR
DeleteObject BrsRegion
End If
End If
Else
If Not BrsPada Then
BrsPada = True
awalBrsX = x
End If
End If
Next
Next
BuatRegion = RegionSemua
End Function

Perbedaan ByVal dan ByRef

20 Desember 2011 Tinggalkan komentar

Semua argumen dilewatkan ke prosedur secara reference (ByRef), kecuali Anda menyatakan lain. Hal ini efisien karena semua argumen yang dilewatkan secara “ByRef” memerlukan sejumlah waktu yang sama dari waktu untuk melewatkan dan sejumlah ruang yang sama (4 bytes) dalam sebuah prosedur tanpa memperhatikan tipe data dari argumen-argumen tersebut.

Anda dapat melewatkan sebuah argumen secara value (ByVal) jika Anda menyertakan kata ByVal di dalam deklarasi prosedur. Argumen yang dilewatkan dengan “ByVal” menggunakan mulai dari 2 sampai dengan 16 bytes dalam prosedur, tergantung pada tipe data argumen tersebut. Tipe data yang lebih besar memerlukan sedikit lebih lama untuk melewatkan “ByVal” daripada yang lebih kecil. Karena hal ini, tipe data String dan Variant umumnya tidak dilewatkan dengan “ByVal”.

Melewatkan sebuah argumen dengan “ByVal” akan meng-copy variabel aslinya. Perubahan pada argumen dalam prosedur tidak berakibat kepada variabel aslinya. Sebagai contoh:

Function Factorial (ByVal MyVar As Integer) ‘ Function declaration.
MyVar = MyVar – 1
If MyVar = 0 Then
Factorial = 1
Exit Function
End If
Factorial = Factorial(MyVar) * (MyVar + 1)
End Function

Private Sub Form_Load()
‘Memanggil Factorial dengan sebuah variabel bernama S.
S = 5
MsgBox Factorial(S) ‘Menampilkan 120 (Factorial dari 5 = 120)
MsgBox S ‘Menampilkan 5.
End Sub

Tanpa menyertakan “ByVal” pada deklarasi fungsi, statement MsgBox sebelumnya akan menampilkan 1 dan 0. Hal ini karena MyVar akan mengacu nantinya ke variabel S, yang dikurangi oleh 1 sampai nilainya bernilai sama dengan nol.

Karena “ByVal” membuat sebuah salinan dari argumen, dia mengizinkan Anda untuk melewatkan sebuah variant ke fungsi Factorial di atas. Anda tidak dapat melewatkan sebuah variant secara reference (ByRef) jika prosedur mendeklarasikan argumen yang tipe-nya berbeda.

Kesimpulannya adalah: “ByVal” merupakan sebuah cara melewatkan nilai dari sebuah argumen ke sebuah prosedur pengganti dari melewatkan alamatnya. Hal ini mengizinkan prosedur untuk mengakses sebuah salinan dari variabel. Sebagai sebuah hasil, nilai variabel sebenarnya tidak dapat diganti oleh prosedur yang melewatkannya.

Sedangkan “ByRef” merupakan sebuah cara melewatkan alamat dari sebuah argumen ke sebuah prosedur pengganti dari melewatkan nilainya. Hal ini mengizinkan prosedur untuk mengakses variabel sesungguhnya. Sebagai sebuah hasil, nilai variabel yang sebenarnya dapat diganti oleh prosedur yang melewatkannya. Kecuali apabila dinyatakan secara eksplisit dengan menggunakan kata “ByVal”, maka semua argumen akan dilewatkan secara “ByRef”.

Mencari dan Mengganti String Tertentu

20 Desember 2011 1 komentar

Deskripsi: Mencari dan mengganti suatu sub string dalam kelompok string sama seperti ketika kita melakukan “Find & Replace” di MS-Word atau aplikasi pengolah kata lainnya.
Persiapan:
1. Buat 1 Project baru dengan 1 Form, 1 Textbox, & 2 Commandbutton.
2. Set properti Multiline Textbox menjadi True.
3. Copy-kan coding berikut ke dalam editor form yang bertalian.
——————————————————————————-

‘Kedua fungsi FindReplace() dan ReplaceFirstInstance() berikut ini
‘digunakan untuk mencari dan mengganti semuanya secara bersamaan
‘(fungsi dipanggil sekali dan langsung mengganti semua sub string ybt)

Dim vFixed As Boolean
Function FindReplace(SourceString, Searchstring, Replacestring)
tmpString1 = SourceString
Do Until vFixed
tmpString2 = tmpString1
tmpString1 = ReplaceFirstInstance(tmpString1, Searchstring, _
Replacestring)
If tmpString1 = tmpString2 Then vFixed = True
Loop
FindReplace = tmpString1
Text1.Text = FindReplace
MsgBox “String tidak ditemukan!”, vbCritical, “Tidak Ditemukan”
Exit Function
End Function

Function ReplaceFirstInstance(SourceString, Searchstring, Replacestring)
Static StartLoc ‘*
If StartLoc = 0 Then StartLoc = 1 ‘*
FoundLoc = InStr(StartLoc, SourceString, Searchstring) ‘*
If FoundLoc 0 Then
ReplaceFirstInstance = Left(SourceString, FoundLoc – 1) & _
Replacestring & Right(SourceString, _
Len(SourceString) – (FoundLoc – 1) – Len(Searchstring))
StartLoc = FoundLoc + Len(Replacestring) ‘*
Else
StartLoc = 1 ‘*
ReplaceFirstInstance = SourceString
End If
End Function

‘Fungsi sReplace() untuk mencari dan mengganti satu string
‘tertentu saja bila fungsi ini dipanggil. String berikutnya
‘akan dicari/diganti bila fungsi ini dipanggil lagi.
Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String)
Dim vSearchLine As String, found As Integer

found = InStr(SearchLine, SearchFor): vSearchLine = SearchLine
If found 0 Then
vSearchLine = “”
If found > 1 Then vSearchLine = Left(SearchLine, found – 1)
vSearchLine = vSearchLine + ReplaceWith
If found + Len(SearchFor) – 1 < Len(SearchLine) Then _
vSearchLine = vSearchLine + Right$(SearchLine, Len(SearchLine) – found – Len(SearchFor) + 1)
Else
MsgBox "String tidak ditemukan!", vbCritical, "Tidak Ditemukan"
Exit Function
End If
sReplace = vSearchLine
Text1.Text = vSearchLine
End Function

'Dalam contoh ini, kita mengganti setiap sub string "ya" menjadi "yes"
'Mengganti satu per satu berurutan dari atas ke bawah
Private Sub Command1_Click()
Call sReplace(Text1.Text, "ya", "yes")
End Sub

'Mengganti semuanya secara bersamaan
Private Sub Command2_Click()
Call FindReplace(Text1.Text, "ya", "yes")
End Sub

Private Sub Form_Load()
Text1.Text = "Halo apa kabar di malam hari yang cerah " & _
"ini semoga semuanya dalam keadaan baik " & _
"dan sehat-sehat selalu tanpa kurang " & _
"suatu apapun ya kalau begitu ya sudah " & _
"kita akan tidur malam ini ya atau tidak " & _
"itu semua terserah Anda karena ada dan tidak " & _
"ada itu sudah hal yang biasa saja ya kan"
End Sub

Fungsi ReDim Di Visual basic

20 Desember 2011 Tinggalkan komentar

Deskripsi:
Menambah elemen suatu array dengan menggunakan statement Preserve”.

Persiapan:
1. Buat 1 Project baru dengan 1 Form dan 2 Commandbutton
2. Copy-kan coding berikut ke dalam editor form yang bertalian.

Setiap kali Anda mengeksekusi statement “ReDim”, semua nilai dari elemen array yang ada akan dihapus. Visual Basic mengeset ulang nilainya menjadi kosong (untuk array Variant), ke nol (untuk array numeric), ke string dengan panjang nol (untuk array string), atau ke Nothing (untuk arrays of objects).

Hal ini sangat berguna ketika Anda ingin menyiapkan array ke data yang baru, atau ketika Anda ingin mengurangi ukuran array untuk menghemat memory. Kadang-kadang, Anda mungkin ingin mengubah ukuran array tanpa harus kehilangan data di array tersebut. Anda dapat melakukan hal ini dengan menggunakan ReDim dengan kata kunci Preserve. Sebagai contoh, Anda dapat memperbesar ukuran sebuah array dengan menambahkan satu elemen tanpa harus kehilangan nilai dari elemen array yang sudah ada, dengan menggunakan fungsi UBound untuk mengacu kepada indeks teratas array tersebut.:

Private Sub Command1_Click()
Dim i As Integer
Dim DynArray() ‘Deklarasi array dinamik bernama DynArray
ReDim DynArray(3) ‘Deklarasi ulang sebanyak 4 elemen

‘Isi setiap elemen array, dan tampilkan
For i = 0 To 2
DynArray(i) = i
MsgBox DynArray(i)
Next i

‘Tambahkan 1 elemen ke DynArray
ReDim Preserve DynArray(UBound(DynArray) + 1)

‘Isi elemen indeks ke-3 dengan 3
DynArray(3) = 3

‘Tampilkan seluruh elemen setelah ditambah
For i = 0 To 3
MsgBox DynArray(i)
Next i
End Sub

Hanya batas teratas dari dimensi terakhir dalam sebuah array multidimensional yang dapat diganti ketika Anda menggunakan kata kunci Preserve keyword ini; Jika Anda mengubah elemen dimensi lainnya, atau indeks yang lebih rendah dari dimensi yang terakhir, sebuah error saat run-time akan terjadi. Jadi, Anda dapat menggunakan coding seperti ini:

Private Sub Command2_Click()
Dim i As Integer, j As Integer
Dim Matrix() As String ‘Deklarasikan array dinamik Matrix
ReDim Matrix(2, 3) As String ‘Deklarasi Matrix sebagai
‘array Multidimensi
‘Isi elemen array Matrix…
Matrix(1, 1) = “Baris satu kolom satu”
Matrix(1, 2) = “Baris satu kolom dua”
Matrix(1, 3) = “Baris satu kolom tiga”
Matrix(2, 1) = “Baris dua kolom satu”
Matrix(2, 2) = “Baris dua kolom dua”
Matrix(2, 3) = “Baris dua kolom tiga”

‘Tampilkan semua elemen array Matrix
For i = 1 To 2
For j = 1 To 3 ‘Mula-mula masih 3…
MsgBox Matrix(i, j)
Next j
Next i

‘Tambahkan satu elemen di dimensi yang terakhir (kanan)
ReDim Preserve Matrix(2, UBound(Matrix, 2) + 1)
‘Tapi, Anda tidak dapat menggunakan coding berikut:
‘ReDim Preserve Matrix(UBound(Matrix, 1) + 1, 10)
‘karena akan menyebabkan error pada saat run-time

‘Sekarang, array ini menjadi Matrix(2, 4)
‘Isi nilai elemen yang ditambahkan ini
Matrix(1, 4) = “Baris satu kolom empat (baru)”
Matrix(2, 4) = “Baris dua kolom empat (baru)”

‘Tampilkan semua elemen array Matrix
For i = 1 To 2
For j = 1 To 4 ‘Sekarang sudah menjadi 4…
MsgBox Matrix(i, j)
Next j
Next i
End Sub

Semoga ini dapat bermanfaat..!

Disable The Form’s X Button

1 Desember 2011 Tinggalkan komentar

Berikut Cara mudah membuat Tombol Close / Exit (“X”) dalam Form menjadi Disable

‘=========================================================================
Masukkan Source ke dalam Module
‘=========================================================================
Public Const SC_CLOSE = &HF060
Public Const MF_BYCOMMAND = &H0
Public Declare Function GetSystemMenu Lib “user32” _
(ByVal hwnd As Long, ByVal bRevert As Long) As Long
Public Declare Function DeleteMenu Lib “user32” _
(ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Declare Function DrawMenuBar Lib “user32” (ByVal hwnd As Long) As Long

Public Sub DisableXbutton(ByVal frmHwnd As Long)
Dim hMenu As Long
hMenu = GetSystemMenu(frmHwnd, 0&)
If hMenu Then
Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
DrawMenuBar (frmHwnd)
End If
End Sub


Private Sub Form_Load()
DisableXbutton (Me.hwnd)
End Sub

Semoga bermanfaat, dan silahkan dikembangkan lagi sendiri.. 🙂

Tools VB

13 November 2011 Tinggalkan komentar

Silahkan gunakan Tools ini dalam pembuatan Program di Visual Basic Anda:

1. Visual Studio 2008 Express Edition Part 1, Part2, Part3, Part 4
2. IZArc4.1
3. DevComponents.DotNetBar.v9.0
4. DXperienceUniersal-10.20.3
5. Kylix SMS ActiveX Control 5.0.5.1
6. Kumpulan Active-X Programming
7. DotNet_Tools_Pack
8. Hex.Editor.Neo.v4.97.02.3667
9. Microsoft Visual Studio 6.0 included MSDN DVD | 2.57 GB
Part1 | Part2 | Part3 | Part4 | Part5 | Part6 | Part7 | Part8 | Part9
Part10 | Part11 | Part12 | Part13 | Part14 | Part15 | Part16 | Part17 | Part18
10.

Tools Akan selalu di Update dan ditambahkan….!!

Semoga Bermanfaat… 😀

Activex EcoEngine.OCX untuk VB 6.0

13 November 2011 Tinggalkan komentar

Copas dari blog Mas Eko Cahyono

Siapa bilang membuat  aplikasi harus bisa coding, dengan activex EcoEngine ini anda akan dipermudahkan dengan setting  dan memasukan parameter aja




Komponen Activex EcoEngine.ocx Ver 1.0.1
Kemampuan Komponen Activex ini bisa hande Secara otomatis hanya meletakn control ini di form
1.Merubah secara otomatis form dan control yg ada menjadi Style vista , XP-Luna,XP-Royale dan Office2007
2.Merubah secara otomatis jenis font semua control yang ada di form
3.Merubah Secara Otomatis Bahasa yg digunakan(Multi bahasa)
4.Menjadikan secara otomatis Form dan control yg ada menjadi AutoSize
5. dan fasilitas lainya yg masih dalam pengembangan

Dengan Activex ocx ini tampilan project vb 6 tidak lagi jadul tapi akan menjadi modern kayak .net . dan aplikasi project yg dikembangkan akan fleksible dipakai di resolusi monitor yang beda-beda karena fitur autosize control dari EcoEngine.aplikasi project akan lebih profesional karena fitur multi bahasa yang ada dengan mengganti bahasa yang dipakai secara otomatis tulisan caption menjadi bahasa yang anda inginkan (untuk sementara hanya indonesia dan English) .

Penggunaanya tidak sulit tidak pakai coding hanya menambahkan satu file Activex EcoEngine.Ocx aja di desain Projectnya . Semua Fitur langsung runing

kelemahan 8-november-2011 by yondi

saat update bahasa ke internet tidak bisa kerena sebelumnya sempat merubah bahasa dan tidak koneksi internet
penyelesaian: klik kanan komponen EcoEngine di from -pilih properties-akan tampil from properties
lalu tekan tombol hapus database bahasa
setelah itu bisa melakukan update/ atao merubah settingan ke english lalu run project
maka akan update secara otomatis jika ada kata dalam desain form yg belum di kenali bahasanya
(dilakukan hanya sekali)
Kelemahanan diatas akan diperbaiki di versi build berikutnya

Download Activex EcoEngine.ocx ver 1.0.1

Fitur Handles yang ada di versi EcoEngine 1.0.2
menyempurnakan versi sebelumnya
setting Handles perpindahan control saat mengisi data(saat enter auto tab)
setting handles warna BackColor isian
setting handles control yang mana aja yg isianya harus angka
setting handles control yang mana aja yg isianya harus format uang dan disertakan terbilangnya
setting handles control combobox auto size kolom isian
setting handles tombol, posisi tombol Proses saat terjadi Tambah simpan edit batal cetak
Dan lain-lain

Download Activex EcoEngine.ocx ver 1.0.2

Untuk Ocx Yang berhubungan dengan maslah database tunggu postingan dari saya heheh

Semoga bermanfaat 🙂