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.

Senin, 17 November 2014

Komponen Delphi Untuk Berkomunikasi dengan Modem USB

Pusing juga buat postingan tentang tutorial. Oleh karenanya kali ini saya akan sharing komponen delphi yang dapat digunakan untuk berkomunikasi dengan modem USB. nama komponennya adalah ZylGSM. component ini bersifat free jadi kita dapat menggunakannya ataupun menyebarluarkannya secara bebas.

Sebagai gambaran, seperti yang telah saya katakan komponen ini dapat digunakan untuk berkomunikasi dengan modem USB, singkatnya anda dapat membuat aplikasi SMS Gateway dengan komponen ini. Jadi selain gammu anda dapat memanfaatkannya untuk kebutuhan membangun aplikasi SMS Gateway. komponen ini memiliki beberapa event seperti berikut

OnConnect = Event yang digunakan ketikan modem konek ke komputer. 
OnDetect = Event yang digunakan untuk mendeteksi perangkat modem.
OnDisconnect = Event ketika modem disconnect 
OnNewMessage = event ketika modem menerima SMS
OnReadMessage = event ketika SMS dibaca
OnSend = Event ketika SMS dikirim 

Komponen Delphi Untuk Berkomunikasi dengan Modem USB

Anda dapat meletakan coding anda pada event-event diata. Jika anda berminat untuk mencoba komponen ini silahkan Download disini. Mohon maaf karena saya belum sempat membuat projek untuk mencoba komponennya. anda dapat melihat contoh demo penggunaannya didalam folder master komponennya. selamat mencoba.

Contoh Penggunaan TWebBrowser Delphi

Kali ini saya ingin berbagi sedikit trik penggunaan komponen TWebBrowser di delphi. komponen ini dapat kita gunakan untuk keperluan menampilkan halaman website pada form delphi. intinya kita dapat membuat sebuah browser sederhana dengan komponen ini. Barangkali dari sobat delphi ada yang berminat membuat atau mengembangkan sebuah browser sendiri komponen web browser ini dapat dimanfaatkan.

disini saya membuat sebuah browser sederhana dengan memanfaatkan komponen web browser ini. sebuah aplikasi yang dapat menampilkan halaman website. membuka tab baru menampilkan status dan beberapa fitur yang masih belum lengkap. untuk tampilannya bisa dilihat seperti di bawah ini

Contoh Penggunaan TWebBrowser Delphi

Seperti yang saya katakan, saya memanfaatkan komponen page control untuk membuka tab baru pada jendela browser sederhana ini. tabsheet pada page control ini selanjutnya dibuat secara run time (saat aplikasi berjalan). berikut adalah tampilan new tab window aplikasi ini.

Contoh Penggunaan TWebBrowser Delphi

Jika anda berminat mengembangkan aplikasi ini atau untuk sekedar kebutuhan eksperimen uji coba anda dapat mendownload source code lengkapnya disini. selamat mencoba.

Jumat, 01 Agustus 2014

Bermain dengan Printer Menggunakan Delphi

Pada postingan terakhir ini saya ingin mengajak sobat untuk bermain-main dengan printer menggunakan delphi. ada beberapa trik yang akan saya sharing terkait dengan printer diataranya bagaimana menampilkan printer default yang digunakan oleh komputer kita, bagaimana menampilkan list printer apa saja yang ada dikomputer kita, menampilkan job printer serta bagaimana print gambar.

Baik Langsung saja, seperti yang telah saya jelaskan bahwa ini adalah postingan terkhir (mungkin) karena itu jika ada salah-salah kata pada postingan saya atau komentar yang tidak sempat saya balas tolong dimaafkan dan dimaklumi. oke kita kembali ke topik. jadi hasil akhir yang akan kita peroleh nantinya seperti gambar berikut

Bermain dengan Printer Menggunakan Delphi

Karena ada sesuatu dan lain hal jadi saya tidak akan membahas step-stepnya tapi akan langsung saya berikan source codenya. silahkan sobat download disini. selamat mencoba dan happy coding :)

Kamis, 31 Juli 2014

Membuat Aplikasi Print Screen Sederhana dengan Delphi

Baiklah kawan, pada postingan sebelumnya saya sudah membahas bagaimana trik mengosongkan recycle bin windows dengan code delphi yang dapat sobat lihat disini. Selanjutnya pada postingan ini saya ingin berbagi bagaimana melakukan print screen atau screen shoot dengan code delphi. Mungkin hal ini bisa kita lakukan dengan mudah hanya dengan menekan tombol PRTSCSYSRQ yang ada di keyboard tapi bukan itu maksud saya.

Kita akan membuat sebuah aplikasi sederhana yang dapat melakukan aksi print screen atau screen shoot pada layar atau jendela sistem operasi windows dan aplikasinya kita buat dengan delphi. hasil akhir yang kita harapkan seperti gambar berikut

Membuat Aplikasi Print Screen Sederhana dengan Delphi

Lalu Bagaimana membuatnya? 
Tambahkan satu buah komponen Button dan satu buah component Image pada form anda. berikutnya copy paste cource code (function) berikut pada projek anda  
function GetScreenShot: TBitmap; 
var
Desktop: HDC;
begin
Result := TBitmap.Create;
Desktop := GetDC(0);
try
try
Result.PixelFormat := pf32bit;
Result.Width := Screen.Width;
Result.Height := Screen.Height;
BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, Desktop, 0, 0, SRCCOPY);
Result.Modified := True;
finally
ReleaseDC(0, Desktop);
end;
except
Result.Free;
Result := nil;
end;
end;

Langkah terakhir tambahkan sebaris code berikut pada event onclick milik button (klik dua kali pada komponen button)
Image1.Picture.Bitmap := GetScreenShot;

Empty Recycle Bin dengan Code Delphi

Dalam belajar bahasa pemrograman komputer utamanya keluarga pascal (delphi) selain latihan membangun sebuah aplikasi atau projek sendiri hal yang banyak saya lakukan adalah dengan mempelajari trik-trik yang ada di internet. saya kira menghafal coding memang pelu tapi bukan itu intinya karena jika kita berlatih secara continoue maka secara otomatis coding akan mudah kita hafal.

Berikut saya sharing sedikit trik tentang bagaimana mengosongkan recycle bin dengan code delphi. meskipun hal ini dapat kita lakukan dengan mudah melalui utilitas yang sudah ada di windows tapi saya kira tidak ada salahnya untuk kita pelajari. baiklah, untuk membuat perintah empty recycle bin windows disini saya menggunakan sebuah procedure sebagai berikut   
Procedure KosongkanBakSampah;
Const
SHERB_NOCONFIRMATION = $00000001;
SHERB_NOPROGRESSUI = $00000002;
SHERB_NOSOUND = $00000004;

Type
TSHEmptyRecycleBin = function (Wnd : HWND; pszRootPath : PChar; dwFlags : DWORD) : HRESULT; stdcall ;

Var
SHEmptyRecycleBin : TSHEmptyRecycleBin;
LibHandle : THandle;

Begin
LibHandle := LoadLibrary(PChar('Shell32.dll')) ;

if LibHandle <> 0 then
begin
@SHEmptyRecycleBin := GetProcAddress(LibHandle, 'SHEmptyRecycleBinA');
end
else
begin
MessageDlg('GAGAL !', mtError, [mbOK], 0);
Exit;
end;

if @SHEmptyRecycleBin <> nil then
SHEmptyRecycleBin(Application.Handle, nil, SHERB_NOCONFIRMATION or SHERB_NOPROGRESSUI or SHERB_NOSOUND);
FreeLibrary(LibHandle);
@SHEmptyRecycleBin := nil ;
end;

Untuk menggunakannya, anda hanya perlu memanggil nama procedurenya pada event yang anda kehendaki untuk melakukan proses penghapusan recycle bin. Selamat mencoba. :)

Selasa, 29 Juli 2014

Tutorial Cara Memasang Captcha Di Delphi

Captcha biasanya digunakan oleh programmer untuk menambah pertahanan pada sebuah sistem yang dibangun. Captcha sendiri seringkali berupa kode-kode yang terdapat dalam sebuah gambar. Jumlah kode tentu saja bervariasi tergantung si pembuat captcha tersebut. Secara sederhana penggunaan captcha adalah untuk memastikan bahwa sebuah proses pada program benar-benar dijalankan oleh manusian (bukan robot atau script hacker) oleh karena captcha banyak kita jumpai pada aplikasi berbasis website.

Meski Aplikasi desktop jarang menggunakan Captcha, saya kira tidak ada salahnya jika kita belajar bagaimana memasang captcha pada inputan form seperti gambar dibawah ini sehingga sebuah aksi tidak akan dapat dilakukan jika kode captcha yang diketikan salah. Kita patut bangga karena komponen captcha dibuat oleh orang indonesia. Nama component captcha delphi ini adalah TCenadepCaptcha silahkan download disini.

Tutorial Cara Memasang Captcha Di Delphi

1. Install Komponen Captcha yang sudah anda download sebelumnya. Silahkan baca postingan sebelumnya jika anda tidak paham bagaimana menginstall komponen di delphi disini caranya sama seperti menginstall component aplha skin delphi.

2. Tambahkan sebuah komponen image dan beberapa komponen seperti gambar diatas kemudian tambahkan komponen captcha (biasanya di pallete terakhir) lalu atur propertinya seperti gambar berikut

Tutorial Cara Memasang Captcha Di Delphi

Contoh Source code lengkap implementasi captcha dan validasinya dapat anda download disini. Happy Coding. :)

Contoh Penggunaan Open dan Save Dialog di Delphi

Open Dialog adalah salah satu komponen Delphi yang berada di Pallete Dialog. Komponen dialog ini dapat kita gunakan untuk membuka suatu file yang ada didalam komputer (misal file notepad/*.txt) kemudian menampilkannya kedalam form di delphi menggunakan komponen Memo. Namun tidak terbatas hanya untuk file txt saja, Komponen Open Dialog juga dapat digunakan untuk membuka berbagai macam file yang selanjutnya dapat kita proses.

Selain Open Dialog, terdapat juga komponen Save Dialog yang dapat kita manfaatkan untuk menyimpan suatu file kedalam komputer seperti menyimpan hasil pemrosesan data (hasil backup database) dan semacamnya. berikut saya ingin berbagi contoh penggunaan open dan save dialog di delphi.

Contoh Penggunaan Open dan Save Dialog di Delphi

Pada contoh ini akan dilakukan pemrosesan pada sebuah file txt dimana akan dibuka oleh Open Dialog dan ditampilkan kedalam komponen memo kemudian hasil pemrosesan akan disimpan melalui save dialog. berikut adalah contoh coding yang saya gunakan
// Buka File TXT
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
end;
end;

// Simpan Hasil
procedure TForm1.Button2Click(Sender: TObject);
var
namafile : string;
begin
if SaveDialog1.Execute then
begin
NamaFile := SaveDialog1.FileName+'.txt';
Memo1.Lines.SaveToFile(namafile);
ShowMessage('Berhasil disimpan!');
end;
end;

Rabu, 02 Juli 2014

Membuat File Installer Delphi dan MySQL Bagian II

Seperti yang telah kita ketahui bersama Pembuatan File Installer atau file instalasi untuk program yang kita buat akan memberikan kemudahan bagi end user karena tidak akan ada lagi proses setting koneksi dan settingan-settingan lain yang mungkin akan memakan waktu bahkan akan menyulitkan pengguna oleh karena membuat file instalasi bisa dikatakan sangat diperlukan.

Sebelum saya fakum mengurusi blog ini, Pada postingan ini saya akan berbagi trik bagaimana membuat file installer aplikasi yang dibangun dengan delphi dan database MySQL. Meskipun sebelumnya sudah pernah saya sharing untuk connector ODBC tapi sayangnnya masih banyak yang belum memahaminya.

1. Ada Baiknya anda menerapkan Connection Dialog pada Aplikasi anda. Silahkan baca postingan saya yang ada disini.

2. Saya anggap anda sudah memahami betul bagaimana membuat file installer delphi dan database Access. meskipun tidak berhubungan tapi hal tersebut akan sedikit membantu. Silahkan baca disini.

3. Saya Jika kedua hal sudah anda pahami. Problem terakhir sebenarnya adalah hanya masalah Database MySQL. yang perlu dipahami adalah MySQL memiliki service yang perlu dijalankan agar kita dapat melakukan koneksi dan melakukan pemrosesan data. Biasanya nama servicenya adalah mysql atau mysqld coba perhatikan gambar berikut

Membuat File Installer Delphi dan MySQL Bagian II

4. Mungkin anda juga sudah mafhum bahwa Database-database yang kita buat di MySQL berada di folder mysql/data. Selain itu MySQL juga memiliki File Konfigurasi yang biasanya berada di file My.ini Jika buka dengan Notepad Maka ini file my.ini kurang lebih seperti berikut. anda perlu melakukan Editing sesuai dengan lokasi database anda.
# MySQL Server Instance Configuration File
[client]
port=3306

[mysql]
default-character-set = utf8

[mysqld]
port=3306
#Edit Ini
basedir="C:\Program Files\Aplikasi Sederhana\mysql"
#Edit Ini
datadir="C:\Program Files/Aplikasi Sederhana/mysql/data/"
default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci
init_connect = 'SET collation_connection = utf8_general_ci'
init_connect = 'SET NAMES utf8'
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=16384
query_cache_size=0
table_cache=256
tmp_table_size=9M
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=17M
key_buffer_size=10M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
log-slow-queries=mysql-slow.log
log-error=mysql.err
skip-innodb
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=17M
innodb_log_file_size=10M
innodb_thread_concurrency=8
5. Sebelum Kita Lanjut, Silahkan Download file MySQL non Installer disini. Perlu diketahui bahwa user di MySQL tersebut adalah root dan Password root. Pastikan Pada Projek anda menggunakan user=root dan password=root untuk koneksi ke MySQL

6. Buat Folder di D:\ dengan nama Install kemudian Ekstrack file mysql hasil download kedalam folder tersebut. Dump/Eksport database anda lalu pindahkan hasil eksport ke folder mysql/mysql/bin/ kemudian Edit File-File (*.bat) yang berada didalam folder mysql/mysql/bin/

7. Download File Master Inno Setup disini dan Inno Setup Script disini. Install Master Inno Setup kemudian Copy Inno Setup Script kedalam Folder D:\Install

8. Perlu diketahui disini saya menggunakan Connector ZEOSLib. Silahkan Pindahkan/Copy File Hasil Compile Projek anda (exe) dan Folder atau File-file yang diperlukan kedalam folder D:\Install sehingga hasilnya akan terlihat kurang lebih seperti gambar berikut.

Membuat File Installer Delphi dan MySQL Bagian II

9. Klik dua kali lalu Edit File Inno-Script dan Sesuaikan dengan File-file dan direktori anda dan Direktory Tujuan hasil Install Anda. Pada Contoh ini Tujuannya adalah C:\Program Files\Edit Ini Kemudian Run. Jangan lupa untuk mengedit file (*.bat) yang ada di folder mysql/mysql/bin/ dan mysql/my.ini 
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

;Nama Folder Aplikasi -> C:\Program Files\Aplikasi Sederhana
#define MyAppName "Edit Ini" ;
#define MyAppVersion "1.0 Beta"
#define MyAppPublisher "Ahmad Tauhid"
#define MyAppURL "http://delphitutor.blogspot.com/"
;Nama Aplikasi -> Hasil Compile
#define MyAppExeName "App.exe"

[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{08B136C3-0A12-412B-BFA3-0FC9EC69E4FB}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1

[Files]
Source: "D:\Install\App.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\App.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\koneksi.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\libmysql.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\Install\mysql\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent

[Run]
Filename: "{app}\mysql\bin\install_service.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\create_database.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\import_database.bat"; Description: ""; Flags: waituntilterminated
Filename: "{app}\mysql\bin\hapus.bat"; Description: ""; Flags: waituntilterminated

[UnInstallRun]
Filename: "{app}\mysql\bin\uninstall_service.bat"; Description: ""; Flags: waituntilterminated

10. Hasilnya akan terlihat di folder Output. Perlu dicatat disini. sebelum anda menguji hasilnya pastikan bahwa service mysql tidak ada yang berjalan pada komputer tempat anda hendak menguji (melakukan install).

Selamat Berkreasi Kawan. Salam Delphier :)

Membuat File Instalasi Delphi dan Database Access

Dalam membangun aplikasi, membuat file instalasi adalah proses terakhir sebelum melakukan pendistribusian program. File instalasi ini akan sangat membantu dan memudahkan user dalam menggunakan program aplikasi yang kita buat sehingga tidak perlu repot lagi  melakukan koneksi ulang serta settingan-settingan lain. Berikut saya ingin berbagi bagaimana membuat file instalasi delphi dan database Access sehingga nantinya jika program hendak digunakan dikomputer lain program tidak akan error.

1. Sebelum kita mulai, saya ingin memastikan bahwa anda melakukan koneksi ke database (aceess) dengan cara yang telah saya posting disini. Pastikan juga pada property ataupun coding program anda menggunakan cara tersebut untuk memanggil suatu file atau report. Hal ini kita lakukan untuk meminimalisir terjadinya error nantinya.

2. Silahkan download tools yang diperlukan disini. kita akan menggunakan SFX Tools. Usai download silahkan install.

3. Sampai disini saya asumsikan struktur folder projek anda seperti gambar berikut

Membuat File Instalasi Delphi dan Database Access

4. Jalankan Program SFX yang telah anda download dan install sebelumnya pada langkah 2. Tambahkan File hasil Compile Projek anda serta folder dan file file yang dibutuhkan sehingga nantinya tampilannya seperti gambar berikut. Installer Name adalah nama Program anda nantinya sedangkan Destination Directory merupakan lokasi tujuan program akan diinstall pada gambar dibawah saya memilik lokasi Program File dan folder Program Saya

Membuat File Instalasi Delphi dan Database Access

5. Klik Tombol Advanced Options kemudian tambahkan shorcut program anda. Arahkan Target File ke File Exe (Hasil Compile) projek anda kemudian Back to Main Menu seperti gambar berikut

Membuat File Instalasi Delphi dan Database Access

6. Selanjutnya klik button > Generate Script Tentukan lokasi dan berinama output file installer anda kemudian Compile Script  

Membuat File Instalasi Delphi dan Database Access

Jika proses compile selesai, maka anda akan melihat outputnya pada lokasi yang telah anda tentukan di step 6. Coba Jalankan File Installer tersebut dikomputer lain. Silahkan Download hasil saya disini. Selamat mencoba dan berkreasi :)

Selasa, 01 Juli 2014

Membuat SMS Auto Reply dengan Gammu dan Delphi

Saat ini aplikasi SMS gateway rata-rata telah dilengkapi dengan fitur auto reply. Hal ini tentu sangat bermanfaat guna mempermudah proses transaksi karena dapat kita terapkan pada aplikasi pendaftaran berbasis sms, pengiriman informasi secara berkala menggunakan sms otomatis dan semacamnya. Berikut saya sharing bagaimana membuat sms auto reply dengan gammu dan delphi.

Sebelum kita membahas lebih jauh tentang bagaimana membuat SMS auto reply dengan gammu dan delphi alangkah lebih baiknya jika kita mengetahui terlebih dahulu bagaimana teknik yang digunakan gammu dalam menerima dan mengirim sms. Berikut adalah syarat yang harus dipahami dalam membuat auto reply menggunakan gammu

Membuat SMS Auto Reply dengan Gammu dan Delphi

1. Ada dua cara yang saya ketahui tentang bagaimana gammu mengirim sms. Cara pertama yaitu dengan menggunakan perintah CLI dan cara yang kedua dengan menginputkan data pada tabel outbox (Service gammu harus berjalan). Pada contoh ini kita akan menggunakan cara kedua.

2. bagaimana kita bisa mengetahui ada sms masuk ? dalam tabel inbox milik gammu terdapat field Processed yang bernilai true atau false. hal itu dapat kita manfaatkan dalam pemrosessan pesan masuk secara berkala menggunakan timer. Jika pesan telah diproses maka nilainya akan diubah menjadi True jika nilai false maka itulah sms masuk. :)

3. Selanjutnya Bagaimana membuat proses tersebut berjalan secara terus menerus sehingga jika ada sms masuk maka otomatis program atau aplikasi akan langsung memprosesnya. dalam hal ini kita dapat memanfaatkan timer yang ada di delphi.

Pada contoh ini, kita akan membuat sebuah program penyewaan lapangan futsal dimana program mengharuskan kepada user yang hendak menyewa untuk mengirimkan format pesan sesuai dengan format yang telah ditentukan yaitu Nama#Jam_Main#No_Lap#Jam_Selesai sudah saya posting sebelumnya disini. Berikut Contoh Coding yang saya gunakan pada Timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
sl: TStringList;
status : string;
begin
status :='False';
QAksi.Close;
QAksi.SQL.Clear;
QAksi.SQL.Add('select * from inbox where Processed="'+status+'"');
QAksi.ExecSQL;
QAksi.Open;
QAksi.First;
// Jika ada SMS dengan Status False
if QAksi.RecordCount>0 then
begin
karakter:='#';
sl:=TStringList.Create;
SplitStr(QAksi['pesan'],karakter,sl);
if (sl.Count <= 1) or (sl.Count <> 4) then
begin
// Simpan Ke Tabel Outbox
ADOquery2.Close;
// Simpan ke Tabel Outbox
ADOquery2.SQL.Clear;
ADOquery2.SQL.Add('Insert into outbox');
ADOquery2.SQL.Add('([pengirim] , [tujuan], [pesan])');
ADOquery2.SQL.Add('Values (:pengirim, :tujuan, :pesan)');
ADOquery2.Parameters.ParamByName('pengirim').Value := '088907890098';
ADOquery2.Parameters.ParamByName('tujuan').Value := QAksi['pengirim'];
ADOquery2.Parameters.ParamByName('pesan').Value := 'Format Pesan Yang Anda Kirim Salah';
ADOquery2.ExecSQL;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'Select * from outbox';
ADOquery2.Open;
// Update Data Pada Tabel Inbox
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE inbox SET');
ADOQuery1.SQL.Add('Processed=?');
ADOQuery1.SQL.Add('WHERE ID=?');
ADOQuery1.Parameters[0].Value := 'True';
ADOQuery1.Parameters[1].Value := QAksi['ID'];
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOquery1.SQL.Text := 'Select * from inbox';
ADOquery1.Open;
end else
begin
// Simpan ke Tabel Pendaftar
ADOquery3.Close;
ADOquery3.SQL.Clear;
ADOquery3.SQL.Add('Insert into pendaftar');
ADOquery3.SQL.Add('([nama] , [jam_main], [no_lapangan], [jam_akhir])');
ADOquery3.SQL.Add('Values (:nama, :jam_main, :no_lapangan, :jam_akhir)');
ADOquery3.Parameters.ParamByName('nama').Value := sl[0];
ADOquery3.Parameters.ParamByName('jam_main').Value := sl[1];
ADOquery3.Parameters.ParamByName('no_lapangan').Value := sl[2];
ADOquery3.Parameters.ParamByName('jam_akhir').Value := sl[3];
ADOquery3.ExecSQL;
ADOquery3.SQL.Clear;
ADOquery3.SQL.Text := 'Select * from pendaftar';
ADOquery3.Open;
// Simpan Ke Tabel Outbox
ADOquery2.Close;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Add('Insert into outbox');
ADOquery2.SQL.Add('([pengirim] , [tujuan], [pesan])');
ADOquery2.SQL.Add('Values (:pengirim, :tujuan, :pesan)');
ADOquery2.Parameters.ParamByName('pengirim').Value := '088907890098';
ADOquery2.Parameters.ParamByName('tujuan').Value := QAksi['pengirim'];
ADOquery2.Parameters.ParamByName('pesan').Value := 'Selamat, Anda Sudah Terdaftar!';
ADOquery2.ExecSQL;
ADOquery2.SQL.Clear;
ADOquery2.SQL.Text := 'Select * from outbox';
ADOquery2.Open;
// Update Tabel Inbox
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE inbox SET');
ADOQuery1.SQL.Add('Processed=?');
ADOQuery1.SQL.Add('WHERE ID=?');
ADOQuery1.Parameters[0].Value := 'True';
ADOQuery1.Parameters[1].Value := QAksi['ID'];
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOquery1.SQL.Text := 'Select * from inbox';
ADOquery1.Open;
end;
sl.Free;
QAksi.Next;
end; // End While
end;
Jika ada sms masuk dengan format seperti tersebut diatas, maka program akan memecah isi string tersebut dengan batasan # kemudian hasilnya akan disimpan kedalam tabel pendaftar lalu user akan dikirmkan sebuah pesan bahwa "pendaftarann berhasil" sedangkan jika format pesannya salah maka program akan mengirim pesan "format pesan anda salah" seperti gambar diatas.

Pada contoh ini saya menggunakan database access. Silahkan anda pahami logika penerapannya kemudian implementasikan pada database gammu milik anda. Download Projeknya disini.   

Insert Update dan Delete MySQL dengan Query Bagian II

Dalam membangun aplikasi, kemampuan menggunakan perintah-perintah kedatabase (query) sangat diperlukan guna membuat aplikasi menjadi lebih interaktif dan powerfull. Sebelumnya sudah pernah saya bahas tentang bagaimana membuat proses input, update dan delete data menggunakan Query yang saya contohkan dengan database acces. Sedikit berbeda dengan hal tersebut karena pada postingan ini query yang akan kita gunakan adalah milik MySQL dan tanpa parameter.

Insert Update dan Delete MySQL dengan Query Bagian II

Pada contoh gambar diatas saya menggunakan dua buah form dimana form utama digunakan untuk menampilkan data sedangkan form kedua digunakan untuk fasilitas input dan update data sedangkan Untuk pencarian data saya menggunakan inputbox. Berikut adalah contoh coding yang saya gunakan

1. Coding Simpan data dengan Query
with form1.ADOQuery1 do begin
Close;
SQL.Text:='INSERT INTO anggota (nama,telepon,alamat,keterangan) VALUES ("'+Edit1.Text+'","'+Edit2.Text+'","'+Memo1.Text+'","'+Edit3.Text+'")';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
MessageDlg('Data Berhasil di Simpan !',mtInformation,[mbok],0);
2. Coding Update atau Edit data dengan Query
 with form1.ADOQuery1 do begin
Close;
SQL.Text:='UPDATE anggota set nama="'+Edit1.Text+'",telepon="'+Edit2.Text+'",alamat="'+Memo1.Text+'",keterangan="'+Edit3.Text+'" WHERE id="'+Label5.Caption+'"';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
MessageDlg('Data Berhasil di Update !',mtInformation,[mbok],0);
3. Coding Delete data Dengan Query
 if ADOQuery1.RecordCount<=0 then
ShowMessage('Data Tidak ada Bro') else
begin
if MessageDlg('Anda Ingin Menghapus Data '+ADOQuery1['nama']+' ?', mtConfirmation,[mbyes,mbno],0)=mryes then
begin
id := ADOQuery1['id'];
with ADOQuery1 do begin
Close;
SQL.Text:='DELETE from anggota WHERE id="'+id+'"';
ExecSQL;
SQL.Text:='SELECT * FROM anggota';
Open;
end;
end else
abort;
end;
4. Coding Pencarian data dengan Inputbox
 var
cari:string;
begin
cari:=InputBox('Nama Yang Dicari ?','Nama : ','');
// Prose Pencarian Data
if cari='' then
abort else
begin
if not ADOQuery1.Locate('nama',cari,[loPartialKey]) then
ShowMessage('Tidak Ada Data !');
abort;
end;
end;
Adapun contoh source code lengkap beserta database dapat anda download disini. Happy Coding :)

Membuat Tulisan Berkedip dan Berjalan di Delphi

Saat saya baru pertama kali belajar delphi, hal pertama yang saya pelajari adalah teknik-teknik membuat sesuatu yang sederhana dan saya anggap menarik salah satu hal tersebut adalah teknik membuat tulisan berjalan dan berkedip jadi membuat semacam animasi pada teks gitu. Mempelajari trik ini yang membuat saya belajar sedikit demi sedikit sehingga sampai sekarang saya bisa mengimplementasikannya pada aplikasi yang saya buat. Itulah cara belajar saya.

Berikut saya akan berbagi bagaimana membuat tulisan atau teks berjalan dan berkedip pada form di delphi. Untuk membuatnya saya biasa menggunakan komponen Timer yang telah tersedia secara default di delphi. Silahkan tambahkan dua buah label dan sebuah timer pada form anda. klik dua kali pada komponen timer kemudian masukan kode seperti berikut 
// Tulisan Berjalan
// LJalan = Label/Teks Berjalan
LJalan.Left := LJalan.Left - 5;
if LJalan.Left <= -200 then
LJalan.Left := 500;

// Tulisan Berkedip
// LKedip = Lable/Teks Berkedip
if LKedip.Caption='Berkedip' then
LKedip.Caption:='' else
if LKedip.Caption='' then
LKedip.Caption:='Berkedip';
Untuk mengatur kecepatan tulisan berjalan atau berkedip anda perlu mengatur interval yang ada pada property milik timer. Selamat mencoba. Happy Coding guys. :)

Selasa, 17 Juni 2014

Cara Membuat File PDF dengan Delphi

Untuk Membuat File PDF sendiri dengan Delphi saya sendiri menggunakan component Delphi pihak ketiga yaitu SynPDF yang dikembangkan oleh tim mormot. Komponennya bersifat opensource jadi kita bebas menggunakannya, menyebarkan dan mengembangkannya. Begitu deh enaknya kalau software open source jadi kalo misalkan anda mengembangkan sebuah projek sebaiknya dibuat open source saja. :)

Cara Membuat File PDF dengan Delphi

Sebelum kita mulai, silahkan download komponent mormot SynPDF disini. Proses Instalasinya tidak begitu rumit karena kita hanya perlu mendifinisikan path library melalui menu Tools | Environment Option. Jika anda masih belum paham anda dapat membacanya pada postingan saya disini

1. Saya anggap proses instalasi sudah selesai. Buat Projek baru pada Delphi anda kemudian tambahkan didalam uses unit anda unit milik SynPDF seperti contoh berikut 
uses
..., SynPdf;

2. Berikutnya Saya mendesain tampilan aplikasi sederhana yang berisi tanggal, judul dan isi artikel yang nantinya akan disimpan menjadi file pdf (gambar diatas). Pada proses ini saya juga memanfaatkan component SaveDialog sehingga Coding simpannya menjadi kurang lebih seperti berikut
procedure TForm1.Button1Click(Sender: TObject);
var
lPdf : TPdfDocument;
lPage : TPdfPage;
begin
lPdf := TPdfDocument.Create;
try
if SaveDialog.Execute then
begin
lPdf.Info.Author := 'http://delphitutor.blogspot.com';
lPdf.Info.CreationDate := Now;
lPdf.Info.Creator := 'Ahmad Tauhid';
lPage := lPDF.AddPage;
lPDF.Canvas.SetFont('Helvetica',10.0,[]);
lPDF.Canvas.SetLeading(lPDF.Canvas.Page.FontSize);
lPDF.Canvas.SetLineWidth(0.1);
lPdf.Canvas.BeginText;
lPdf.Canvas.TextOut(20, 750, 'Tanggal : '+FormatDateTime('dd/mm/yyyy',DateTimePicker1.Date));
lPdf.Canvas.TextOut(20, 730, 'Judul : '+Edit1.Text);
lPdf.Canvas.TextOut(20, 710, 'Isi Pesan : '+Memo1.Text);
lPdf.Canvas.EndText;
lPdf.SaveToFile(SaveDialog.FileName+'.pdf');
end;
finally
lPdf.Free;
end;

end;

Cara Membuat File PDF dengan Delphi

Hasil yang diperoleh kurang lebih seperti gambar diatas jika dibuka menggunakan foxit reader. Jika anda membutuhkan contoh source code silahkan download disini. Akhir kata selamat mencoba. Happy Coding. :)

Membuat dan Menampilkan Laporan dengan Crystal Report di Delphi

Ada banyak cara membuat laporan di delphi, selain dengan komponen yang sudah include didalam delphi kita juga dapat memanfaatkan salah satu tools yaitu dengan menggunakan bantuan pihak ketiga seperti Crystal Report. Fungsi laporan akan menjadi penting jika kita membangun aplikasi berbasis database oleh karenanya saya tertarik untuk membahas ini agar tidak monoton hanya dengan komponen yang sudah ada di delphi bahwa memang bisa juga dengan bantuan pihak ketiga.

1. Pertama, Sebelum kita mulai saya asumsikan anda sudah mengistall software Crystal report di komputer anda. Pada contoh ini saya menggunakan Crystal Report versi 8.5. 

2. Selanjutnya pada proses kedua ini kita akan menambahkan Component ActiveX Crystal Report pada Delphi. Disini saya menggunakan Delphi 7. Silahkan Buka Delphi anda kemudian klik Project | Import Type Library kemudian ikuti seperti langkah pada gambar berikut

Membuat Laporan dengan Crystal Report di Delphi

3. Pada Halaman Jendela Install Komponent seperti gambar dibawah, silahkan pilih tab Into New Package | Isi Filename dan Descryption sesuai keinginan anda (sebaiknya tanpa spasi).


4. Kemudian pada pesan yang muncul pertama pilih Yes dan untuk yang kedua Ok. Jika tidak ada maslah akan terlihat komponent baru di pallete ActiveX dengan nama Crystall Report.

Sampai disini kita sudah berhasil menambahkan component Crystall report ke Delphi. Langkah selanjutnya adalah membuat laporan dengan Crystall Report dengan langkah-langkah berikut

1. Step pertama tentu saja menjalankan Tools Crystal Report. Menu | All Programm | Crystall Report Tools

Membuat Laporan dengan Crystal Report di Delphi

2. Selanjutnya akan ada dua pilihan dimana saya menggunakan using the report expert anda bisa juga menggunakan blank report

Membuat Laporan dengan Crystal Report di Delphi

3. Langkah berikutnya adalah memilih template laporan yang akan digunakan. disini saya menggunakan template standar seperti gambar berikut

Membuat Laporan dengan Crystal Report di Delphi

4. Berikutnya adalah proses mengkoneksikan database dengan laporan crystal report. klik tombol Database

Membuat Laporan dengan Crystal Report di Delphi

5. Proses selanjutnya adalah melakukan koneksi database yang kita miliki. disini akan saya contohkan menggunakan database mysql dan database access. Perlu diingat pada database MySQL konektor yang digunakan disini adalah ODBC jadi pastikan anda telah membuat datasource sebelumnya atau bisa juga menggunakan datasource yang telah anda buat sebelumnya pada saat melakukan koneksi.

Membuat Laporan dengan Crystal Report di Delphi
(Menggunakan ODBC untuk koneksi ke Database MySQL)

Membuat Laporan dengan Crystal Report di Delphi
(Koneksi dengan Database Access)

6. Setelah melakukan proses diatas maka akan terlihat tabel pada database, pilih tabel yang ingin anda buatkan laporannya kemudian Next

Membuat Laporan dengan Crystal Report di Delphi

7. Berikutnya adalah pilih field-field pada tabel yang ingin anda tampilkan pada laporan anda nantinya. Add | Finish

Membuat Laporan dengan Crystal Report di Delphi

Membuat Laporan dengan Crystal Report di Delphi

Pada gambar terakhir diatas, terlihat kita sudah berhasil membuat sebuah laporan. Silahkan Desain terlabih dahulu sesuai kebutuhan anda kemudian simpan didalam folder projek anda dengan nama laporan. Sampai disini kita sudah berhasil membuat laporan dengan Crsytal Report. Proses selanjutnya adalah menampilkan laporan tersebut dengan Button dengan langkah berikut

1. Tambahkan Komponen Crystall Report (ada di Pallete ActiveX) kedalam Form anda. Tambahkan Juga Sebuah Button yang akan kita gunakan untuk memanggil laporan yang kita buat sebelumnya dengan crystal report. 

Membuat Laporan dengan Crystal Report di Delphi

2.  Berikutnya Atur Property Crystal Report WindowState = 2 crptMaximized. Klik dua kali pada Button Laporan kemudian tambahkan code untuk memanggil laporan seperti berikut. sesuaikan dengan milik anda.

- Jika Anda Menggunakan Database MySQL berikut adalah codenya 
// Lakukan Koneksi ke Datasource ODBC / Sama dengan Koneksi Crystal Report
CrystalReport1.Connect:='DSN=nama_datasource;UID=user;PWD=password;DSQ=';
// Mendefinisikan File Crystal Report
CrystalReport1.ReportFileName:='laporan.rpt';
// Tampilkan Crystal Report
CrystalReport1.Action:=1;

- Jika anda Menggunakan Database Access Berikut adalah Contoh Codenya
// Lakukan Koneksi ke Database
CrystalReport1.Connect:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=nama_database.mdb;';
// Mendefinisikan File Crystal Report
CrystalReport1.ReportFileName:='laporan.rpt';
// Tampilkan Crystal Report
CrystalReport1.Action:=1;

Jalankan Aplikasi Anda. Setelah Button Cetak Laporan/Laporan diklik nantinya akan muncul file Laporan yang dibuat sebelumnya dengan Crystal Report. Seperti gambar dibawah ini

Membuat dan Menampilkan Laporan dengan Crystal Report di Delphi

Silahkan Download Contoh Source code lengkap (Database, Aplikasi dan Laporan) disini. Selamat Mencoba :)

Cara Export Database Access Ke MySQL

Untuk melakukan export database Access ke MySQL saya sendiri menggunakan tools pihak ketiga yang dibuat oleh yang dibuat oleh sekumpulan programmer yang tergabung didalam nama bulzip. Mereka telah melahirkan beberapa tools diantaranya adalah tools yang akan kita gunakan untuk melakukan export database access to mysql nantinya. Anda tidak perlu khawatir karena tools ini bersifat freeware alias gratis.

Proses Export database ini sering saya lakukan untuk merubah database yang sudah jadi (access) menjadi database mysql. Baiklah, sebelum kita mulai silahkan download peralatan yang dibutuhkan disini. Usai mendownload silahkan diinstall berikut adalah tampilan utama aplikasi Access To MySQL

Cara Export Database Access ke MySQL

1. Klik Next Pada gambar diatas untuk menuju ke proses berikutnya.

2. Pada halaman selanjutnya pilih Database Access yang akan di export. Jika anda hendak mengeksport database access yang memiliki password gunakan opsi kedua kemudian next seperti gambar berikut

Cara Export Database Access ke MySQL

3. Pada jendela halaman berikutnya. Tahan dulu karena kita harus membuat database terlebih dahulu di mysql agar dapat melanjutkan ke proses berikutnya. Berikut contoh saya membuat database di mysql dengan nama hasil_export

Cara Export Database Access ke MySQL

4. Kembali ke halaman aplikasi export database silahkan isi informasi DBMS mysql anda seperti hostname, user, password, engine tabel yang ingin anda gunakan serta database yang telah dibuat pada step 3. Dari sini dapat kita tarik kesimpulan bahwa yang akan di export oleh tools ini adalah tabel berserta data yang ada pada tabel.

Cara Export Database Access ke MySQL

5. Selanjutnya pilih (centang) tabel pada database access yang ingin anda export ke database mysql. kebetulan disini saya hanya memiliki sebuah tabel (gambar dibawah)

Cara Export Database Access ke MySQL

6. Step terakhir adalah Run Now untuk memulai proses export. seperti gambar berikut

Cara Export Database Access ke MySQL

Berikut adalah hasil yang saya peroleh setelah proses export dijalankan. Terlihat ada sebuah tabel dengan nama tes dan beberapa data didalamnya yang diexport dari database access.

Cara Export Database Access ke MySQL
  

Menampilkan Assisten Pada Halaman Aplikasi Delphi

adanya assistan pada halaman aplikasi tentu akan semakin menjadikan aplikasi yang kita bangun menjadi lebih menarik dan user friendly. assistan yang saya maksud disini adalah sebuah gambar animasi yang dapat menampilkan pesan pertolongan jika dibutuhkan oleh user contohnya pada halaman lembar kerja microsoft office. Jika kita terapkan di delphi berikut contoh demonya.

Menampilkan Assisten Pada Halaman Aplikasi Delphi

Contoh diatas menampilkan animasi assisten sebuah warning untuk menutup aplikasi. selain contoh diatas kita juga dapat memodifikasi ataupun mengganti gambar animasi sesuai keinginan kita. Ada duapuluh gambar animasi assisten yang dapat kita gunakan dan tentu saja disediakan secara gratis. component nya pun dapat anda download dan gunakan secara gratis (freeware) cek disini. Jangan lupa untuk mendownload gambar assistennya juga. 

Selanjutnya untuk cara install komponennya sama dengan komponen pada umumnya seperti component Alpha Skin atau ZeoSlib Silahkan baca disini. Untuk Implementasinya dapat anda lihat pada contoh Demo pada komponent Office Assistan yang anda donwload. Berikut saya contohkan secara sederhana

1. Pastikan Komponen Office assisten sudah terinstall di delphi. pada contoh ini saya menggunakan Delphi 7

2. Tambahkan sebuah Komponen Assisten, Sebuah komponen Button dan sebuah component opendialog kedalam Form Anda.

3. Klik dua kali Pada Button kemudian tambahkan code berikut 
 
const
pesan = 'Hallo Saya adalah Asisten Anda';
begin
try
OpenDialog1.FileName := Assistant1.ActorLibrary;
if OpenDialog.Execute and (Assistant1.ActorLibrary <> OpenDialog1.FileName) then
begin
Assistant1.ActorLibrary := OpenDialog1.FileName;
Assistant1.SetPosition((Screen.Width div 6), (Screen.Height div 2));
Assistant1.MsgDlg.Title := 'Assisten';
Assistant1.Visible:=True;
Assistant1.MessageDlg(pesan, mtInformation, [mbOk], 0);
end;
finally
Assistant1.OnGuideOptionsClick := AssistenFile1Click;
end;
end;
Download Contoh Penggunaan Office Assistan disini.

Minggu, 08 Juni 2014

Teknik Membuat Pagination dengan Delphi

Pagination atau yang oleh sebagian orang juga disebut dengan istilah paging adalah sebuah teknik membagi data yang ada di tabel database menjadi beberapa bagian kemudian ditampilkan kedalam dbgrid, listview atau komponen untuk menampilkan data yang lain. Biasanya dalam pagination atau pagging tersebut juga terdapat beberapa button seperti Next, Prev, Last dan First yang akan mengacu pada data yang akan ditampilkan. Seperti gambar dibawah.

Menurut para master delphi teknik pagination di delphi ini akan sangat membantu untuk meringankan beban utamanya jika datanya terlalu banyak. Logikanya tentu menampilkan 1000 data akan berbeda beban processor dan memory dengan menampilkan hanya 10 buah data saja. Berikut saya sharing source code membuat pagination dengan delphi dan database MySQL.

Teknik Membuat Pagination dengan Delphi

Pada contoh sederhana ini akan ditampilkan data sebanyak 5 buah perhalaman, untuk menampilkan data selanjutnya user harus mengklik button yang telah disediakan. Adapun datanya akan ditampilkan dalam component ListView yang digenerate pada saat runtime (aplikasi berjalan). Teknik ini juga dapat anda terapkan pada komponen dbgrid atau sejenisnya. Silahkan Download Source code beserta database dan datasourcenya disini. Happy Coding. :) 

Sabtu, 07 Juni 2014

Sedikit Trik Untuk Lokasi File di Delphi

Berikut saya akan berbagi trik untuk teknik pemanggilan file pada folder dengan Delphi. Lokasi File atau biar lebih keren kita sebut saja Path File teknik memanggil atau menggunakan file berdasarkan lokasi file tersebut akan sangat membantu dalam memabangun aplikasi apalagi jika aplikasi hendak kita bundle menjadi satu paket instalasi dan akan digunakan pada komputer yang berbeda.

Suatu contoh saya berikan ketikan kita hendak melakukan koneksi ke database acces biasanya path database pada jendela koneksi akan terisi seperti gambar berikut atau bisa saja berbeda karena tergantug lokasi file access anda. 

Sedikit Trik Untuk Lokasi File di Delphi

Memang tidak ada masalah jika file database access tersebut masih berada pada lokasi tersebut namun bagaimana jika hendak dipindah kekomputer lain ? tentu koneksi tidak akan bisa terbentuk. Saya kira mengkoneksikan ulang database bukanlan solusinya. Jadi solusi terbaik adalah dengan menempatkan database tersebut didalam folder projek lalu mengganti path/lokasi database pada settingan koneksi menjadi berikut.
Sedikit Trik Untuk Lokasi File di Delphi

Itu solusi jika databasenya tepat berada didalam folder projek anda. lalu bagaimana jika lokasi filenya berada didalam folder berbeda artinya didalam folder projek masih ada folder lagi yang berisi file database. Maka anda perlu menggantinya seperti gambar berikut

Sedikit Trik Untuk Lokasi File di Delphi

Dan yang terakhir, jika databasenya berada diluar folder projek anda. solusinya adalah dengan mengganti nama_folder (contoh diatas) dengan .. yang artinya keluar dari folder projek seperti gambar berikut

Sedikit Trik Untuk Lokasi File di Delphi

Cara diatas tidak hanya bisa diterapkan pada file database saja tapi juga pada file-file lain jika anda hendak memanggilnya menggunakan coding semisal untuk menampilkan gambar pada contoh berikut.
// Gambar Ada di Folder gambar didalam Folder Projek
Image1.Picture.LoadFromFile('gambar/2.JPG');
// Gambar ada diluar Folder Projek
Image1.Picture.LoadFromFile('../2.JPG');
// Gambar ada didalam folder Projek
Image1.Picture.LoadFromFile('2.JPG');

Menampilkan Data dari Database ke Checklistbox Delphi

Dalam membangun aplikasi dengan bahasa pemrograman apapun. salah satu hal utama yang harus kita miliki adalah sebuah ide dan kreatifitas selain itu tentu saja juga harus memiliki skil yang memadai. Berbicara tentang kreatifitas tidak luput dari trik-trik yang digunakan dalam membangun sebuah aplikasi. Trik-trik tersebut biasanya lahir dari masalah-masalah yang muncul saat sedang membuat aplikasi semisal menampilkan data dari database dengan teknik yang berbeda (bukan ke dbgrid) tapi ke komponen lain seperti label atau edit.

Pada kesempatan ini saya akan mencoba berbagi sedikit trik bagaimana menampilkan data yang ada pada tabel database ke component check list box di delphi. Cara seperti ini juga bisa kita terapkan pada component delphi yang lain seperti label atau edit. Berikut adalah contoh data yang saya miliki pada tabel database

Menampilkan Data dari Database ke Checklistbox Delphi

Nah, untuk menampilkan data tersebut pada component check list box di delphi sebelumnya tentu saja kita harus melakukan koneksi terlebih dahulu saya anggap sudah tidak ada masalah karena saya tidak akan membahasnya disini.

Sederhana saja, pada gambar berikut saya memiliki sebuah komponen checklistbox, sebuah listbox dan dua buah button.  

Menampilkan Data dari Database ke Checklistbox Delphi

karena saya ingin menampilkan data yang ada di database pada saat button ambil value dari tabel database ditekan maka saya hanya perlu menambahkan code berikut pada button tersebut 
var i : integer;
begin
for i := 1 to ADOQuery1.RecordCount do
begin
checklistbox1.Items.Add(ADOQuery1['Value']);
ADOQuery1.Next;
end;

Berikutnya untuk mengambil value pada komponent checklistbox tersebut saya menambahkan script seperti berikut ini pada button centang lalu klik ini 
var i : integer;
begin
listbox1.Items.Clear; // hapus dulu
for i := 0 to checklistbox1.items.Count - 1 do
begin
if checklistbox1.Checked[i] = true then
begin
listbox1.Items.add(checklistbox1.Items.Strings[i]);
end;
end;

Jumat, 06 Juni 2014

Membuat Aplikasi Sederhana Untuk Dialup Koneksi Modem dengan Delphi

Aplikasi Sederhana Untuk Dialup Koneksi Modem dengan Delphi

Untuk mengkoneksikan komputer ke internet kita menggunakan layanan pihak ketiga yaitu Internet Service Provider (ISP) seperti telkom atau dengan menggunakan Modem USB melalui provider seperti XL, Telkomsel, Axis, Smartfren dan lain sebagainya. Hal ini dilakukan dengan melakukan dialup pada aplikasi yang sudah include dalam modem (Biasanya Aplikasi Mobile Partner) setelah melakukan instalasi dan beberapa langkah settingan ringan. 

Berbekal rasa penasaran saya mencari-cari cara bagaimana melakukan dialup koneksi modem USB yang saya gunakan tapi dengan aplikasi yang kita buat sendiri menggunakan Delphi. Singkat kata, sayapun menemukannya dan pada kesempatan ini akan saya sharing kepada sobat delphier. Stay tune ok! :)

Aplikasi Dialup Koneksi Modem dengan Delphi 

1. Buka Delphi anda | Buat Projek baru | Tambahkan WinInet dalam uses anda.

2. Berikutnya tambahkan dua buah constanta sebelum code type
  const
ERROR_USER_DISCONNECTION = 631;
ERROR_NO_CONNECTION = 668;

3. Berikutnya buat dua buah variabel global dengan type DWORD
  ret, ConnNumber: DWORD;

4. Langkah Selanjutnya membuat sebuah fungsi yang berfungsi untuk melakukan dialup koneksi sebagai berikut
// Dial Up Koneksi
function Dial() : Boolean;
var
ret : LongInt;
NameOfDialupConnectionToUse : pchar;

begin
// Nama Koneksi
NameOfDialupConnectionToUse:= 'SAINET';
ret:= InternetDial(
Form1.Handle,
NameOfDialupConnectionToUse,
INTERNET_AUTODIAL_FORCE_UNATTENDED,
@ConnNumber,
0);

case ret of
ERROR_SUCCESS:
// Jika Berhasil
begin
Result := True;
exit;
end else
// Jika gagal
begin
Result := False;
exit;
end;
end;
end;

5. Kemudian kita perlu membuat sebuah solusi agar aplikasi juga bisa melakukan disconnect/hangup dari internet. dalam hal ini dilakukan oleh procedure seperti berikut
// Putus Koneksi
procedure Hangup;
begin
InternetHangup(ConnNumber, 0);
end;

6. Langkah terakhir, kita hanya perlu memanggil fungsi dan procedure yang telah kita buat pada langkah sebelumnya. contoh penerapannya adalaha sebagai berikut
    If Button2.Caption='Dial' then
begin
If Dial() = True then
begin
Label1.Caption:='Koneksi Berhasil. . .';
Button2.Caption:='Hangup';
end else
Label1.Caption:='Koneksi Di Batalkan. . .';
end else
If Button2.Caption='Hangup' then
begin
Hangup;
Label1.Caption:='Terputus. . .';
Button2.Caption:='Dial';
end;

Sedikit Tips : Tambahkan sebuah timer dalam form projek anda lalu letakan code berikut. ini berfungsi untuk mengecek koneksi internet secara continoue
  if NOT InternetAutoDial(INTERNET_AUTODIAL_FORCE_UNATTENDED,0) then
Label1.Caption:='Error Establishing Connection';
if NOT InternetAutodialHangup(0)then
Label1.Caption:='Error Disconnecting...';