Friday 18 April 2008

Menyimpan Status CheckBox pada Delphi

Disalah satu bagian pada program Tugas Akhirku, terdapat 18 checkbox yg merupakan informasi dari kelengkapan data naskah (lihat postingan saya tentang Tugas Akhir). Saya berfikir bagaimana caranya menginisiasi ke 18 checkbox itu dan menyimpannya ke dalam database, begitu juga sebaliknya membaca database kemudian merepresentasikan ke dalam checkbox apakah checked=true atau false. Cara kuno yg saya dapatnya adalah cara manual dengan banyak coding dan memakan banyak field di database (harus menyediakan 18 field dalam 1 tabel)


//untuk menulis ke database atau write
if checkbox1.checked=true then table1.fieldvalues['isi1']:='1' else
table1.fieldvalues['isi1']:='0';

....
if checkbox18.checked=true then table1.fieldvalues['isi18']:='1' else table1.fieldvalues['isi18']:='0';
//=============================================================================
//untuk membaca database atau read
if table1.fieldbyname('isi1').asstring='1' then checkbox1.checked := true else checkbox1.checked:=false;
.....
if table1.fieldbyname('isi18').asstring='1' then checkbox18.checked := true else checkbox18.checked:=false;


Script diatas sangatlah tidak efisien, membutuhkan banyak waktu,tempat dan ruang. Saya bertanya sana sini, mencari sana sini bagaimana caranya hal tersebut dapat disimpan dalam database namun dengan sedikit coding dan sedikit memakan space database. Akhirnya saya mencoba men-dinamiskan ke 18 checkbox tadi, dan menjadikan semuanya dalam 1 field saja. Setelah itu diinisiasi menggunakan angka biner. Jadi untuk setiap checkbox kita tidak perlu menyediakan 18 field dalam tabel, namun cukup 1 field yg isinya merupakan angka biner yg merepresentasikan status checkbox tadi.

untuk simulasinya silahkan ikuti langkah berikut :

1. buka delphi anda dan buat aplikasi baru
2. siapkan 2 buat edit (ganti namanya menjadi Ed_masuk dan Ed_keluar), 2 button (ganti captionnya menjadi Input dan Output), dan 18 checkbox (TCheckbox, nama biarkan default)
3. simulasi pertama yaitu kita membuat inisiasi atas ke 18 checkbox menjadi 18 urutan angka biner. kemudian menyimpannya kedalam Ed_keluar (Tedit ini seolah2 adalah field dari database). Masukkan beberapa perintah berikut didalam event - Onclick Button2 (output)

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
kode : array [1..18] of string;
checkbox : array [1..18] of TCheckBox;
begin
ed_keluar.Clear;
i:=1;
for i:=1 to high(checkbox) do
begin
if TCheckbox(FindComponent('Checkbox'+IntToStr(i))).Checked = true then kode[i]:='1'
else kode[i]:='0';
ed_keluar.Text := ed_keluar.Text+kode[i];
end;
end;


Untuk mencobanya, silahkan centang beberapa checkbox kemudian klik tombol Output. Maka pada ed_keluar akan terlihat urutan 18 angka biner. angka 0/1 merepresentasikan status checkbox anda, apakah dicentang atau tidak. Urutan angka biner sesuai dengan urutan Checkbox anda.



4. Simulasi kedua adalah menerima urutan 18 angka biner (seharusnya dari database) dari Ed_masuk kemudian membaca per karakter dan merepresentasikan status Checkbox tadi. Buat event-Onclick pada button1 (Input) kemudian lengkapi prosedurnya dengan perintah berikut

procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer; kode : array [1..18] of string;
begin
i:=1;
j:=1;
for i:=1 to length(ed_masuk.Text) do
begin
kode[i] := copy(ed_masuk.Text,i,j);
if kode[i]='1' then TCheckbox(FindComponent('Checkbox'+IntToStr(i))).Checked := true
else TCheckbox(FindComponent('Checkbox'+IntToStr(i))).Checked := false;
end;
end;


Untuk mencobanya silahkan masukkan 18 angka biner (0/1) kedalam ed_masuk kemudian klik tombol Input. Maka checkbox yg tercentang berasal dari angka '1' dari urutan yg anda masukkan sebelumnya.



Alhamdulillah script jadi lebih sedikit dan cuma butuh 1 field dalam tabel...so simple..... :D

terima kasih buat rekan2 di Delphi Indonesia.



Tulisan ini juga saya tulis di blog saya

Technorati Tags: , ,

Powered by ScribeFire.

[ ... ]

Wednesday 16 April 2008

Setting GPRS IM3 untuk Internetan

Setting im3, berhubung saya sudah sering kali mendapat pertanyaan baik langsung atau pun sms tentang bagaimana menyetting im3 untuk internetan, maka saya sedikit berbagi tulisan tentang setting im3 semoga bisa bermanfaat.

Langkah awal : Setting DataComm
1.new Account : M3-GPRS
2.APN : www.indosat-m3.net
3.username : gprs
4.password : im3

Langkah kedua : Setting Internet Profile
1.New Profile : M3-GPRS
2.Connect Using : M3-GPRS
3.Use Proxy : Yes
4.Proxy address : 10.19.19.19
5.Port number : 8081

setting ini bisa dimanfaatkan untuk langsung terkoneksi dengan PC anda. Berikut saya contohkan dengan Blutooth. Hidupkan bluetooth dan lakukan koneksi service dia-up HP.
Setelah terkoneksi lakukan dial dengan no default (*99***1#). ada dua jenis username yang dapat digunakan : gprs untuk volumebase dan indosat@durasi untuk ngenet dengan timebase. password isi dengan im3




jika anda mengalami kegagalan koneksi, lakukan reset all pada HP anda dan ulangi setting manual diatas. Semoga berhasil !!!

*Setting ini telah terbukti berhasil di Sony Ericsson Z550i
*Setting ini bisa dilakukan dengan otomatis dengan mengirimkan pesan GPRS merekhape
Tipe HP ke 3939 [ ... ]

Friday 11 April 2008

Validasi Email Pada Delphi 7

Data yg dimasukkan ke dalam suatu database sebaiknya merupakan data yg benar-benar telah tervalidasi. Sehingga nantinya data selalu akurat dan tidak terjadi hal-hal yg tidak diinginkan. Salah satu yg wajib hukumnya untuk di validasi yaitu data Email. Email memiliki struktur yg berbeda dari data lainnya. Berikut struktur dari data Email

nama_email@domain.com

Jika dilihat, maka email memiliki struktur unik sebagai berikut :

1. karakter '@'. selalu ditandai dengan karakter '@' setelah nama_email anda
2. Nama Domain. Setelah karakter '@' dilanjutkan dengan nama domain email anda.
3. karakter titik '.' (dot). Karakter ini selalu ada untuk memisahkan nama domain dengan jenis domainnya
4. jenis domainnya (.net, .com, .co.id ,,,). Jenis domain minimal adalah 2 karakter

Sesuai struktur diatas maka untuk membuat validasi email, kita gunakan aturan2 diatas sebagai validitasnya.

Langsung ke tahap teknis. Seperti biasa buka Delphi anda dan siapkan sebuah aplikasi baru.

1. Siapkan sebuah Edit (Tedit) dan sebuah Button (TButton)
2. Buka Unit anda (F12) kemudian masukkan function tambahan berikut ini bagian bawah Implementation

function IsValidEmail(const Value: String): boolean;
function CheckAllowed(const s: String): boolean;
var i: Integer;
begin
Result:= False;
for i:= 1 to Length(s) do // illegal char in s -> no valid address
if not (s[i] in ['a'..'z','A'..'Z','0'..'9','_','-','.'])then Exit;
Result:= true;
end; //end of function CheckAllowed
var i,len: Integer; namePart, serverPart: String;

begin // of IsValidEmail
Result:= False;
i:= Pos('@', Value);
if (i=0) or (Pos('..',Value) > 0) then Exit;
namePart:= Copy(Value, 1, i - 1);
serverPart:= Copy(Value,i+1,Length(Value));
len:=Length(serverPart);
// must have dot and at least 3 places from end,
// 2 places from begin

if (len<4) or (Pos('.',serverPart)=0) or (serverPart[1]='.') or (serverPart[len]='.') or (serverPart[len-1]='.') then Exit;
Result:= CheckAllowed(namePart) and CheckAllowed(serverPart);

end; //end of function IsValidEmail


3. Double Click pada button, atau masuk ke Events - Onclick. Masukkan perintah berikut

procedure TForm1.Button1Click(Sender: TObject);
begin

if IsValidEmail(edit1.Text) then showmessage ('Email anda Benar')
else showmessage('Email anda salah');
end;

Penjelasan: (Setelah user memasukkan email pada Tedit dan kemudian melakukan klik pada button)

1. Prosedur ButtonClick akan berjalan (point 3 diatas), dan melakukan pemanggilan function IsValidEmail
2. Email anda ditampung dalam variabel 'Value' dalam function tsb.
3. Value di cek apakah terdapat karakter '@'
4. Value di cek apakah terdapat karakter '.' (dot)
5. Sistem melakukan cek pada susunannya
6. Sistem melakukan cek huruf (apakah input yg diberikan sesuai) pada function CheckAllowed
7. Hasil akhirnya adalah boolean (True/False)
8. Jika hasil akhirnya adalah True, maka sistem akan menampilkan pesan 'Email anda benar', dan sebaliknya jika hasilnya False maka sistem akan menampilkan pesan 'Email anda salah')

Semoga bermanfaat buat semua..


Powered by ScribeFire.

[ ... ]

Sunday 6 April 2008

Objek Picture berjalan di VB.NET

Seorang teman berkata kepada saya, " , bisa ngga kita buat gambar berjalan di form vb.Net, tapi kalo sewaktu-waktu bisa berhenti( dikontrol)". Kira-kira begitu pertanyaannya. Saya simpulkan untuk menjawab bisa, saya coba menjalankan objek dengan bantuan timer plus sedikit bantuan rekursif, dan bisa dikontrol dengan mouse.

Semoga bisa membantumu teman...

Click Download [ ... ]

Saturday 5 April 2008

Memberikan animasi transparan pada saat menjalankan aplikasi Delphi

Ini merupakan trik yang sederhana…

Trik ini dapat digunakan untuk mempercantik tampilan aplikasi anda, namun walaupun sederhana animasi ini dapat menarik perhatian dari orang yang melihat aplikasi yang anda bangun.

Aplikasi ini berfungsi untuk memunculkan form aplikasi anda secara perlahan dan dengan tampilan transparan, tidak seperti tampilan default dari Delphi yang menampilkan form aplikasi anda secara langsung.

Berikut adalah contoh program menggunakan fasilitas tersebut :

Form1.Hide;

AnimateWindow(Form1.Handle, 5000, AW_BLEND);

Form1.Show;

Kode di atas dapat anda masukkan ke dalam procedure ketika anda memunculkan form (FormShow)

Ket :

5000 = merupakan lamanya waktu saat program dijalankan hingga form tersebut terlihat menjadi utuh (lamanya waktu animasi transparan), 5000 berarti 5 detik.

AW_BLEND = merupakan jenis dari animasi transparan, dengan fungsi AW_BLEND animasi langsung memunculkan seluruh form. Anda juga dapat mencoba dengan AW_HOR_POSTIVE, AW_HOR_NEGATIVE, AW_VER_POSITIVE, AW_VER_NEGATIVE.

Terima kasih udah dikasih kesempatan nulis di blog ini…

Semoga bermanfaat… :)

[ ... ]

Tuesday 1 April 2008

Searching di ListView

Sial... maksudnya bikin buru-buru biar bisa di upload untuk temen- temen di www. vb-bego.net eh.. malah keduluan servernya eror,websitenya kagak bisa dibuka.Udah kepalang mau upload, Terpaksa dah nulis di blog dulu neh...

Neh program pencarian pada listview. Biasanya kan pencarian dari database, tapi ini pencarian pada listview. mungkin akan bermanfaat, agar tidak terus-terusan manggil data dari database. Pencarian ini saya buat dengan memanfaatkan konsep matriks :)

silakan download di : http://rapidshare.com/files/104126558/pencarianDi_Listview.zip.html

semoga membantu

salam.... BeGO [ ... ]

Recent Comments Blog