Genzo newbie just share =) Genzo noob just share: Delphi
selamat datang di blog tutorial saya ,blog ini di buat sederhana untuk memudahkan anda dalam membaca dan belajar :D .keep calm and enjoy =) . /yusufgenzo
Tampilkan postingan dengan label Delphi. Tampilkan semua postingan
Tampilkan postingan dengan label Delphi. Tampilkan semua postingan

Koneksi Ke Database Saat Run-Time

Kali ini saya ingin berbagi tentang cara koneksi ke database (Ms. Access) saat run-time pada pemrograman Delphi. Run-time artinya saat program dijalankan, bukan pada saat perancangan (design time). Keuntungannya program yang kita buat lebih dinamis dan kita bisa melakukan perubahan pada koneksinya saat program sedang berjalan.
Sebagai contoh buat sebuah database menggunakan Ms. Access tentunya, dan jangan lupa tambahkan beberapa sampel data didalamnya. Supaya lebih afdhol, tambahkan password pada database tersebut. Setelah itu buka Delphi anda dan buat sebuah palikasi baru. Pastikan anda menyimpan programnya satu folder dengan database. Untuk koneksi ke databasenya, kita akan menggunakan ADO.
Tambahkan komponen-komponen dibawah ini pada form anda. Yang didalam tanda kurung adalah nama tab dimana komponen tersebut berada.
  • ADOConnections (ADO)
  • ADOTable (ADO)
  • DataSource (Data Access)
  • DBGrid (Data Controls)
Properti ‘name’ dari masing-masing komponen tidak perlu diganti, biarkan saja nama defaultnya. Arahkan properti ‘Connection’ dari ADOTable1 ke 'ADOConnections1', kemudian untuk komponen DataSource1 pilih ADOTable1 pada properti ‘DataSet’ dan untuk DBGrid1 pilih DataSource1 pada properti 'DataSource'. Nah sekarang semua komponen sudah saling terhubung, tapi kok datanya belum muncul pada DBGrid? Ya memang begitu karena kita belum mengkoneksikannya dengan database. Koneksi baru akan dilakukan saat program dijalankan. Untuk itu tambahkan script berikut pada event 'OnCreate' form anda
procedure TForm1.FormCreate(Sender: TObject);
const
namadb = 'data.mdb';
passdb = 'localhost/blog';
tabel = 'tb_barang';
begin
ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + ExtractFilePath(application.ExeName) + namadb + ';' +
'Persist Security Info=False;' +
'Jet OLEDB:Database Password=' + passdb;
ADOConnection1.LoginPrompt:=false;
ADOConnection1.Connected := True;
ADOTable1.TableName:=tabel;
ADOTable1.Active:=true;
end;
Perhatikan pada script diatas terdapat 3 konstanta masing-masing 'namadb' adalah nama database anda, 'passdb' adalah password database, dan 'tabel' adalah nama tabel yang ada di database. Jadi anda perlu merubah nilainya sesuai dengan database anda.
Karena lokasi database berada satu folder dengan program, maka pada bagian data source tambahkan fungsi 'ExtractFilePath(application.ExeName)' untuk menghasilkan path dari file exe program berada. Dengan begitu dimanapun program diletakkan asalkan berada satu folder dengan databasenya maka koneksinya akan tetap mengarah ke database tersebut.
Coba jalankan program anda. Jika data yang ada dalam database muncul pada DBGrid berarti anda berhasil…

Browsing Menggunakan Proxy Dengan TWebBrowser

Tips ringan dari saya kali ini sebenarnya tidak begitu penting tapi mudah-mudahan bisa bermanfaat bagi anda dunia dan akhirat. Seperti halnya browser-browser pada umumnya, dengan komponen WebBrowser pada Delphi kita bisa browsing menggunakan proxy. Entah dari mana asalnya script ini saya sudah lupa karena sudah terlalu lama juga saya simpan, tapi siapapun dia saya ucapkan banyak terima kasih karena berkat dia maka lahirlah artikel ini. Oke ini dia scriptnya yang berupa "procedure ApplyProxy". Tapi sebelumnya tambahkan dulu "WinInet" pada bagian "uses" nya.
procedure ApplyProxy(proxy: string);
var
MyInternetProxyInfo: PInternetProxyInfo;
begin
MyInternetProxyInfo:=New(PInternetProxyInfo);
try
if proxy = '' then
MyInternetProxyInfo^.dwAccessType := INTERNET_OPEN_TYPE_DIRECT else
begin
MyInternetProxyInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
MyInternetProxyInfo^.lpszProxy := PChar(proxy);
MyInternetProxyInfo^.lpszProxyBypass := PChar('<local>');
end;
InternetSetOption(nil, INTERNET_OPTION_PROXY, MyInternetProxyInfo, SizeOf(MyInternetProxyInfo^));
finally
Dispose(MyInternetProxyInfo);
end;
end;
Jalankan procedure ini sebelum perintah navigate pada TWebBrowser. Script ini sudah saya coba jalankan di Delphi 7 dan hasilnya mulus tanpa hambatan. Tuh ada screenshotnya diatas kalo ga percaya. Atau download aja demo programnya di link ini : http://adf.ly/QPdh3

Membuat Shutdown Timer Dengan Delphi

Shutdown timer, sebuah aplikasi sederhana tapi sangat besar manfaatnya. Tentunya saya tidak perlu menjelaskan panjang lebar tentang kegunaan aplikasi ini karena pasti semuanya sudah tau. Nah, sekarang saya ingin berbagi tentang cara membuat aplikasi tersebut menggunakan Borland Delphi 7. Memang tutorial ini sudah banyak di internet, namun tak ada salahnya kan jika saya juga ikut menulis artikel tentang ini. Yang penting ini hasil pemikiran sendiri, bukan hasil copy-paste dari blog orang lain.
Ok, pertama kita siapkan dulu form-nya. Desainnya sesuai selera masing-masing, yang penting didalamnya terdapat komponent Label, DatetimePicker, Timer, RadionGroup, dan 2 buah Button. Properti name untuk masing-masing komponen tidak perlu diganti, kita pake nama defaultnya saja. Untuk RadioGroup1, tambahkan 3 buah item masing-masing Shutdown, Restart, dan Log Off . Beri angka 0 untuk itemindexnya. Untuk Button1 beri caption "Aktifkan" dan caption "Batal" untuk Button2.  Untuk Timer1, beri angka 100 untuk intervalnya. Hasilnya kira-kira seperti ini :
Sekarang kita tinggal menambahkan kode programnya. Yang pertama, pada event OnCreate Form1 ketikkan kode berikut :
Timer1.Enabled:=false;
DateTimePicker1.Time:=time;
Button2.Enabled:=false;
Selanjutnya pada event Timer1.Timer :
if timetostr(time) = timetostr(DateTimePicker1.Time) then
begin
case RadioGroup1.ItemIndex of
0:winexec('shutdown -s -t 0 -f',sw_normal);
1:winexec('shutdown -r -t 0 -f',sw_normal);
2:winexec('shutdown -l -t 0 -f',sw_normal);
end;
end;
Button1 OnClick :
Button2.Enabled:=true;
Button1.Enabled:=false;
DateTimePicker1.Enabled:=false;
RadioGroup1.Enabled:=false;
Timer1.Enabled:=true;
Button2 OnClick :
Button2.Enabled:=false;
Button1.Enabled:=true;
DateTimePicker1.Enabled:=true;
RadioGroup1.Enabled:=true;
Timer1.Enabled:=false;
Ok, selesai. silahkan dicoba dikomputer masing-masing. Contoh yang sudah jadi bisa di download disini

Eksekusi Perintah DOS dan Mendapatkan Outputnya

Eksekusi perintah DOS di Delphi, tips yang sudah lama saya cari-cari dan akhirnya ketemu juga.. Nah, sebagai rasa syukur saya, maka saya ingin berbagi tips tersebut kepada anda.
Pertama-tama, buat sebuah form dan tambahkan komponen Button, Edit dan Memo masing-masing satu. Jadi ceritanya kita memasukkan perintah DOS kedalam Editbox, kemudian tombol diklik, dan output dari perintah tersebut ditampilkan di Memo.Untuk itu kita perlu menambahkan fungsi berikut kedalam program:
function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string;
var
SA: TSecurityAttributes;
SI: TStartupInfo;
PI: TProcessInformation;
StdOutPipeRead, StdOutPipeWrite: THandle;
WasOK: Boolean;
Buffer: array[0..255] of AnsiChar;
BytesRead: Cardinal;
WorkDir: string;
Handle: Boolean;
begin
Result := '';
with SA do begin
nLength := SizeOf(SA);
bInheritHandle := True;
lpSecurityDescriptor := nil;
end;
CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0);
try
with SI do
begin
FillChar(SI, SizeOf(SI), 0);
cb := SizeOf(SI);
dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
wShowWindow := SW_HIDE;
hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin
hStdOutput := StdOutPipeWrite;
hStdError := StdOutPipeWrite;
end;
WorkDir := Work;
Handle := CreateProcess(nil, PChar('cmd.exe /C ' + CommandLine),
nil, nil, True, 0, nil,
PChar(WorkDir), SI, PI);
CloseHandle(StdOutPipeWrite);
if Handle then
try
repeat
WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil);
if BytesRead > 0 then
begin
Buffer[BytesRead] := #0;
Result := Result + Buffer;
end;
until not WasOK or (BytesRead = 0);
WaitForSingleObject(PI.hProcess, INFINITE);
finally
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
end;
finally
CloseHandle(StdOutPipeRead);
end;
end;
Kemudian tambahkan kode berikut pada event onclick Button1:
Memo1.Text:=GetDosOutput(Edit1.Text);

Untuk mengetesnya coba ketikkan perintah "help cd". Jika sudah benar, hasilnya akan seperti gambar dibawah ini:

Source code yang sudah jadi bisa di download disini

Cara Cepat Validasi Input Di Delphi

Kali ini saya akan berbagi tentang cara validasi input di Delphi. Kenapa saya katakan cara cepat, karena dengan cara ini kita tidak perlu lagi mengetikkan script validasinya untuk tiap-tiap field. Untuk lebih jelasnya, sebagai contoh kita buat sebuah form dengan empat komponen Edit dan satu Button didalamnya. Misalnya dari keempat field tersebut ada tiga field yang wajib diisi. Ganti properti "tag" dari ketiga komponen Edit tersebut menjadi 1, dan yang lainnya biarkan tetap 0. Hal ini bertujuan untuk membedakan mana field yang wajib diisi dan mana yang tidak. Setelah itu ketikkan script dibawah ini. Fungsi inilah yang akan digunakan untuk validasi input ketika tombol submit di klik.
function inputKosong(frm:TForm):boolean;
var i: integer;
begin
result:=false;
with frm do begin
for i:=0 to ComponentCount-1 do begin
if (Components[i] is TEdit)and(Components[i].Tag = 1) then
if TEdit(Components[i]).Text = '' then result:=true;
end;
end;
end;
Perhatikan pada fungsi diatas terdapat parameter "frm" yang bertipe "TForm". Isikan nama form dimana field-field yang akan di-validasi untuk parameter ini. Sebagai contoh, tambahkan script berikut pada event "onClick" tombol submit anda.
procedure TForm1.Button1Click(Sender: TObject);
begin
if inputKosong(self) then begin
showmessage('Masih ada field yang kosong');
exit;
end;
showmessage('Data disimpan');
end;
Pada contoh diatas, parameter "self" digunakan untuk validasi pada form itu sendiri. Contoh source codenya bisa di download disini.
Ok sekian dulu tips ringan dari saya kali ini. Selamat mencoba

Membuat Aplikasi Mp3 Player

Ini adalah contoh aplikasi mp3 player yang dibuat dengan Borland Delphi. Fungsinya ya untuk memainkan file mp3. Sengat sederhana sih, tapi lumayan buat belajar. Ada playlistnya juga. Kalo mau, download aja source code-nya disini