Minggu, 01 Februari 2015

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Berdasarkan pengalaman pribadi saya dalam membangun sebuah aplikasi, seringkali kita mendapatkan masalah-masalah sederhana yang tak terduga. Entah itu yang berkaitan dengan Coding atau source code, teknik membangun aplikasi, ataupun database baik query atau semacamnya. Berdasarkan pengalaman pribadi saya pula postingan ini saya tulis. siapa tahu ada yang mengalami masalah yang sama dan artikel sederhana ini dapat membantu.

Salah satu masalah sederhana yang banyak terjadi adalah bagaimana menampilkan tipe data text mysql kedalam dbgrid di delphi. karena secara default, data yang ditampilkan bertuliskan (MEMO). Hal ini tentu saja dapat menjadi masalah tersendiri lebih lebih jika kita mengutamakan kenyamanan end-user. Perhatikan contoh berikut ini.

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Pada gambar diatas terlihat bahwa nilai Field password pada DBGrid tidak ditampilkan karena merupakan tipe data text di mysql. Lantas bagaimana cara menampilkannya? 
Klik dua kali pada komponen ADOQuery. Lalu klik kanan dan Add All Field seperti gambar berikut

Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Berikutnya klik 1 kali pada field yang bertipe data text (bertuliskan memo di dbgrid) pada contoh ini adalah field password. masuk ke object inspector | event | OnGetText. Tambahkan Coding Berikut di dalam Event OnGetText
Text := Copy(ADOQueryNamaField.AsString, 1, 200);
Menampilkan Tipe Data Text (Memo) di DBGrid Delphi

Form di dalam Form Delphi

anda tentu sering menggunakan aplikasi-aplikasi yang dibangun oleh para developer. entah itu aplikasi yang bersifat berbayar atau free alias gratisan. dari aplikasi-aplikasi yang pernah digunakan tersebut tentu kita sering mendapat ide semisal meniru desain, tampilan, alur program dan hal-hal lain. Contohnya seperti yang akan saya bahas pada postingan ini yaitu bagaimana membuat form berada didalam form.

Sebagai gambaran, pada contoh disini akan terdapat tiga buah form. Form pertama akan kita gunakan sebagai Form Utama (Form Parent). Berikut Form kedua dan ketiga akan kita manfaatkan sebagai Form Child atau form yang akan muncul didalam form Utama. Terdapat juga komponen Panel yang akan digunakan untuk meletakan form child serta menu untuk memanggil form child. Bagaimana, Sampai disini ada gambaran?

Form di dalam Form Delphi

1. Buat 3 Buah Form dalam Projek anda, kemudian simpan

2. Tambahkan Unit Form kedua dan ketiga kedalam uses Unit form pertama

3. Tambahkan sebuah menu untuk memanggil form kedua dan ketiga 

4. Tambahkan sebuah komponen panel. set property | Align = alClient 

Adapun contoh coding untuk memanggil masing-masing form adalah sebagai berikut. Jika masih kurang jelas, anda dapat mendownload contoh source code (projek) disini. selamat mencoba. happy coding. :)
procedure TForm1.FormSatu1Click(Sender: TObject);
var
form_anak_satu : TForm2;
begin
form_anak_satu:=TForm2.Create(nil);
form_anak_satu.Parent:=Panel1;
form_anak_satu.Align:=alClient;
form_anak_satu.Show;
end;

procedure TForm1.FormDua1Click(Sender: TObject);
var
form_anak_dua : TForm3;
begin
form_anak_dua:=TForm3.Create(nil);
form_anak_dua.Parent:=Panel1;
form_anak_dua.Align:=alClient;
form_anak_dua.Show;
end;

Rabu, 07 Januari 2015

Menghitung Selisih Waktu di Delphi

Dalam membangun aplikasi, tidak jarang kita akan dihadapkan pada operasi matematis. Bahkan bisa dikatakan hal itu adalah sebuah hal yang wajib ada. Saya kira tidak perlu untuk menyebutkan contohnya karena saya yakin sobat delphi sudah mengalaminya. Entah itu berkaitan dengan tugas atau dalam mengembangkan aplikasi untuk dipasarkan.

Terlepas dari hal tersebut diatas, dalam membuat aplikasi, tidak jarang pula kita dihadapkan pada persoalan perhitungan waktu atau tanggal. seperti menghitung selisih waktu, membuat sebuah proses yang akan dijalankan setiap waktu yang telah ditentukan dan berbagai macam persoalan lainnya. Pada postingan ini saya ingin berbagi sedikit trik tentang cara menghitung selisih waktu di delphi seperti contoh gambar berikut.

Menghitung Selisih Waktu di Delphi

Pada contoh diatas saya menggunakan dua buah jam yang akan diproses yaitu jam pertama dan jam kedua dimana masing-masing jam diambil dari inputan edit dan hasilnya akan ditampilkan pada komponen label. Untuk melakukan pemrosesan pada contoh diatas kita memerlukan library uses DateUtils. Adapun contoh source codenya dapat anda lihat dibawah ini. 
// Pendefinisian Variabel
var
Form1: TForm1;
StartTime, EndTime, TimeDiff : TDateTime;
sec, jam, menit, detik : word;
h, m, s : word;
inc : word;
Selisih : String;
Itime : TTime;

// Kode Untuk Button
procedure TForm1.Button4Click(Sender: TObject);
begin
StartTime := StrToTime(Edit1.Text);
EndTime := StrToTime(Edit2.Text);
Selisih := TimeToStr(EndTime-StartTime);
StartTime := StrToTime(Selisih);
//
h := HourOf(StartTime);
m := MinuteOf(StartTime);
s := SecondOf(StartTime);
inc := (h*sqr(60)+(m*60)+s);
//
Itime := Now();
Itime := IncSecond(Itime,inc);
//
sec := SecondsBetween(Now(),Itime);
jam := sec div 3600;
menit := (sec mod 3600) div 60;
detik := (sec mod 3600) mod 60;
//
Label3.Caption:='Selisih Waktu = '+IntToStr(jam)+' Jam '+IntToStr(menit)+' Menit '+IntToStr(detik)+' Detik';

end;

Selasa, 06 Januari 2015

Script Generate Tanggal di Delphi

Postingan kali ini adalah tentang Generate tanggal. mungkin sobat delphi masih bertanya-tanya tentang apa itu generate tanggal. sebenarnya nama generate tanggal ini saya beri nama sendiri karena saya kira nama itulah yang cocok. hehe. lalu apa itu generate tanggal? jadi gambarannya begini, suatu misal kita punya tanggal awal 01-01-2015 dan tanggal akhir yaitu 08-09-2015. pertanyaannya, bagaimana cara membuat tanggal dari tanggal awal sampai tanggal akhir secara otomatis? itulah yang saya maksud dengan generate tanggal. singkat kata, sebuah operasi yang akan membuat tanggal secara otomatis dari tanggal awal sampai tanggal akhir.

Generate Tanggal di Delphi

pada contoh disini saya memanfaatkan dua buah komponen date time picker. dimana tanggal awal dan tanggal akhir saya ambil dari date time picker tersebut. 1 Buah button untuk melakukan pemrosesan dan 1 buah memo untuk menampilkan hasil akhir atau outputnya. adapun listing code untuk melakukan generate tanggal ini sebagai berikut. jangan lupa menambahkan DateUtils di Uses anda.
procedure TForm1.Button1Click(Sender: TObject);
var
diff : Double;
i,j : integer;
begin
Memo1.Lines.Clear;
diff := DateTimePicker2.Date - DateTimePicker1.Date;
if diff < 0 then
abort else
begin
if diff = 0 then
Memo1.Lines.Add(DateToStr(DateTimePicker1.Date))
else
begin
j := 1;
Memo1.Lines.Add(DateToStr(DateTimePicker1.Date));
for i := 1 to StrToInt(FloatToStr(Int(diff))) do
begin
Memo1.Lines.Add(DateToStr(IncDay(DateTimePicker1.Date, j)));
j:=j+1;
end;
end; end;
end;


Cara Membuat Passwordchar Bulet di Delphi

Secara default, passwordchar pada komponen edit delphi adalah #0. Pada beberapa kasus seperti dalam form login dimana terdapat inputan username dan password, umumnya pada inputan password, karakter yang digunakan tidak terlihat. ambil saja contoh pada inputan password login facebook. di delphi Hal tersebut dapat kita lakukan dengan mengganti property passwordchar pada komponen edit. biasanya yang banyak digunakan adalah bintang. cara menggantinya cukup mudah, klik 1 kali pada komponen edit -> masuk ke objek inspector -> isi passwordchar dengan *. Hasilnya dapat dilihat seperti gambar di bawah ini.

Cara Membuat Passwordchar Bulet di Delphi

Lalu, bagaimana membuat agar passwordchar tersebut berbentuk bulet lingkaran dengan warna hitam seperti input password di form login facebook atau halaman website? caranya sangat mudah. anda hanya perlu mengganti passwordchar pada komponen edit dengan huruf l (huruf setelah k). langkah selanjutnya ganti font milik komponen edit tersebut dengan Wingdings. Hasil yang saya peroleh seperti gambar dibawah ini. 

Cara Membuat Passwordchar Bulet di Delphi

Senin, 15 Desember 2014

Menjalankan Source Code VB di Delphi

VB atau yang juga dikenal dengan nama visual basic memang sangat jauh berbeda dengan delphi. secara penulisan code, delphi mengadopsi penulisan code bahasa pemrograman pascal sehingga delphi juga kerap disebut objek pascal karena setiap komponennya merupakan sebuah objek,
adapun VB atau visual basic lebih mirip bahasa C. Visual Basic merupakan bahasa pemrograman yang dikembangkan oleh orang-orang Microsoft sedangkan delphi saat ini dikembangkan oleh Embarcadero.

Menguasai beberapa bahasa pemrograman sekaligus memang tidaklah mudah karena untuk benar-benar menguasai satu bahasa pemrograman saja susahnya minta ampun. Terkadang dalam membuat sebuah aplikasi dengan delphi saya sering memperoleh source code contoh yang menggunakan Visual Basic. Jujur saja saya sedikit kesulitan untuk menterjemahnya menjadi bahasa objek pascal.

Berawal dari hal itu saya tertarik untuk memposting artikel yang akan membahas bagaimana menjalankan source code visual basic melalui delphi. kita membutuhkan sebuah komponen tambahan untuk melakukannya. secara default delphi tidak menyediakannya oleh karena silahkan download disini.

Sampai disini saya anggap anda sudah menginstall komponen yang diperlukan. Jika anda sukses melakukan instalasi, akan ada komponen tambahan di pallete terakhir. Silahkan tambahkan komponen tersebut kedalam form anda. tambahkan juga beberapa komponen sebagai berikut

- Memo 1 Buah, digunakan untuk mengetikan Source code Visual Basic
- Button 1 Buah, digunakan untuk mengeksekusi coding VB yang diketik melalui memo.

Pada Contoh disini saya membuat sebuah procedure untuk menjalankan source code VB sebagai berikut. Anda dapat mendownload contoh source code projeknya disini.

procedure TForm1.vb_script(coding : string);
var
CodeIsParsed : boolean;
strProcName : string;
begin
try
SMScriptExecutor1.AddCode(coding);
SMScriptExecutor1.Prepare;
SMScriptExecutor1.ParseModules;
CodeIsParsed := True;
// Proses Script
strProcName := 'main';
SMScriptExecutor1.Run(strProcName,0);
except
end;
end;

Menampilkan Gambar di Laporan Delphi

Dalam Mengembangkan ataupun membangun sebuah aplikasi berbasis database, penggunaan laporan atau bahasa kerennya report tentu akan sangat diperlukan. biasanya fasilitas-fasilitas pencetakan laporan yang ada dalam sebuah aplikasi akan berkaitan dengan data-data yang telah tersimpan di database. sebut saja laporan transaksi penjualan dari aplikasi penjualan akan menampilkan data penjualan yang telah tersimpan di database.

Adakalanya dalam sebuah laporan kita menampilkan data-data dari database dalam bentuk gambar. misalkan data pegawai atau data-data lainnya. Berangkat dari permasalahan ini saya tertarik untuk membahas tentang bagaimana menampilkan gambar dari database pada laporan Quick Report. Jadi asumsinya, kita akan menyimpan data gambar pada database kemudian menampilkannya ke laporan di Quick Report.

Menampilkan Gambar di Laporan Delphi

Sampai disini saya anggap anda sudah memahami bagaimana menyimpan gambar ke database serta membuat laporan dengan quick report. langkah selanjutnya sebenarnya sama saja dengan teknik menampilkan gambar dari database. perhatikan contoh berikut ini.

Menampilkan Gambar di Laporan Delphi

pada gambar diatas saya menggunakan komponen QRImage dari pallete Quick Report kemudian untuk memberikan value atau nilai pada gambar tersebut saya menggunakan coding. silahkan download source code programnya disini. Selamat mencoba silahkan kembangkan sendiri.