Archive for category Delphi
Filter Data Database Paradok di Delphi 7
Artikel kali ini membahas tentang bagaimana memfilter data dalam membuat laporan dari hasil pengolahan data yang kita buat. Mb Sri yang nanya nih.
.
Misalkan kita hanya akan mencetak data penjualan pada tanggal sekian saja, atau akan mencetak data barang yang stoknya menipis, atau mencetak data mahasiswa yang nilainya A saja, atau anda ingin memfilter data karyawan yang menerima gaji tanggal sekian dan dengan NIK tertentu, serta masih banyak lagi lainnya. Yang pasti Filter data sangat penting sekali dalam proses pembuatan laporan.
Saya Menggunakan Object Table di BDE dan Data Source di Data Access untuk koneksi dan pengolahan datanya.
1. Tampilkan data Karyawan dengan NIK “040001″
Code :
Table1.Filtered:=False;
Table1.Filter='NIK='+QuotedStr('040001');
Table1.Filtered:=True;
2. Tampilkan data yang karyawan yang gajinya lebih besar dari 2 juta.
code:
Table1.Filtered:=False; Table1.Filter:='Total_Gaji>2000000'; Table1.Filtered:=True;
3. Tampilkan data penjualan tanggal 17/05/2007 dan dengan Nomor Jual 1002
code:
Table1.Filtered:=False;
Table1.Filter:='Tgl_Jual='+QuotedStr('17/05/2007') +'And No_Jual='+QuotedStr('1002');
Table1.Filtered:=True;
Anda bisa menggunakan statement And atau Or jika terdapat dua atau lebih kondisi.
.
Membuat Menu Aplikasi di Delphi 7

Menanggapi respon dari mas rohman, yang ingin membuat menu utama pada aplikasinya. Monggo ikuti langkah-langkah berikut untuk membuat menu seperti contoh diatas.
- Buat Project sebuah baru anda, dari menu File -> New -> Application,maka akan otomatis ada form1
- Buat beberapa form baru di dalam project anda tersebut. Dari menu File -> New -> Form, pada contoh ini saya membuat 3 form yaitu Form1 (sebagai menu utama), Form2 dan Form3 sebagai Form prompt ketika di klik salah satu menu.
- Jangan lupa menyimpan project dan form-form anda, dari menu File -> Save All.
- Mulai membuat menupada Form1 letakkan object MainMenu yang ada ditab Standar. Klik kanan pada MainMenu1 -> Menu Designer. maka akan ada tampilan edit menu.
Klik pada area biru gambar diatas, kemudian pada properties Caption ketikkan “Document“, kemudian enter. Satu menu utama sudah terbuat.Untuk membuat menu dari Document, klik pada menu document, akan ada satu area menu yang masih kosong, klik kemudian pada caption ketikkan Baru dan enter, dan seterusnya untuk menu-menu lain.
Untuk membuat garis pembatas antar menu, cukup ketikkan - (tanda min), pada caption.
Untuk membuat sub menu dari menu Baru, klik kanan pada Menu Baru -> Create Sub Menu, klik pada satu area kosong dari sub menu baru, kemudian ketik Dokument Kosong. Demikianjuga untuk membuat menu-menu.
Close windows editor menu untuk selesai dan kembali ke design Form1. Jika berhasil maka pada form1 sudah ada menu-menu yang kita buat.
- Membuat Form show/dan showmodal.untuk contoh ini, Form2 akan ditampilkan jika dipilih menu Document -> Buka.
pilih menu Document dan klik Buka, maka akan masuk ke lebar source code, Kodenya adalahForm2.Show;
atau bisa juga
Form2.ShowModal.
Apa perbedaan antara kedua kodenya?
Jika menggunakan fungsi show, maka form1 dan form2 bisa bertukar tempat, artinya form1 bisa diatas Form2 dan Form2 bisa diatas form1. Tapi ShowModal akan membuat Form1 sebagai menu utama selalu berada dibelakang, dan Form2 akan selalu berada diatas (Always on Top).
- Simpan kembali project anda.
- Run / F9 untuk eksekusi.ketika run akan ada pesan berikut

Pilih Yes, bahwa benar Form1 mereferensikan form dua di unitnya.
Skin Changer Dengan Delphi
Yang menunggu tutorial ini, mohon maaf kelamaan dipostingnye.. he he. biasa deh ga perlu banyak ceramah langsung aja.
Berikut adalah contoh penggunaan multi skin diaplikasi seperti halnya Winamp skins, jadi anda bisa menganti tampilan program anda langsung, tinggal pilih skin kemudian OK, berubah deh tampilannya. Ketika anda menutup program anda dan membukanya kembali nanti, maka skin yang akan ditampilkan adalah skin settingan anda terakhir kali.
Pastikan Skin library sudah diinstall di Delphi anda, jika belum ikuti langkah-langkah disini
Agar langkah-langkah kita seiring, silahkan atur folder dan file-file anda seperti berikut:

Ket:
- Folder skinTest : adalah folder utama letak program kita dibuat
- Folder skin : adalah letak folder skin-skin yang anda punya.
Skin-skin tersebut bisa anda download di http://www.saarixx.info/sxskincomponents/en/downloads.php
atau dari skin-skin yang anda buat sendiri. - cetekSkin.conf : adalah file config untuk menyimpan settingan skin. file ini berguna untuk menyimpan setting yang anda pilih, File ini tidak perlu dibuat karena akan dicreate dengan kode program.
- file dpr,exe,pas,dfm dkk, sopasti file-file program kita.
Selanjutnya buat design sesuai selera anda.
Saat mendesign tampilan, lebih baik pasang terlebih dahulu object SXSkinLibrary1, SXSkinForm1, dan kemudian baru object-object lainnya. Ini bermanfaat supaya object-object lain akan secara otomatis mengatur sendiri properties-propertiesnya.
Untuk SXSkinLibrary1, SXSkinForm1 tidak perlu diatur propertiesnya, karena kita akan mengaturnya langsung dari script.
Yuk bahas scriptnya:
unit test;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, SXSkinLibrary, SXSkinForm, SXSkinControl,SXSkinRadioButton,
SXSkinCheckBox, SXSkinButton, SXSkinEdit,SXSkinPanel, SXSkinImage,
SXSkinLabel, Grids, DBGrids, SXSkinSpinEdit,StdCtrls, Menus,
ComCtrls, DirOutln, Outline;Type
{membuat variable object TcetekSkin dengan type record,
dan menambahkan nameOfSkin type string size 20 sebagai satu field}
Type
TcetekSkin = record
nameOfSkin : string[20];
end;
TForm1 = class(TForm)
SXSkinRadioButton1: TSXSkinRadioButton;
SXSkinLibrary1: TSXSkinLibrary;
SXSkinForm1: TSXSkinForm;
SXSkinImage1: TSXSkinImage;
SXSkinEdit2: TSXSkinEdit;
SXSkinEdit1: TSXSkinEdit;
SXSkinSpinEdit1: TSXSkinSpinEdit;
SXSkinButton6: TSXSkinButton;
SXSkinLabel1: TSXSkinLabel;
SXSkinButton7: TSXSkinButton;
ComboBox1: TComboBox;
procedure FormCreate(Sender: TObject);
procedure SXSkinImage1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SXSkinImage1MouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
procedure SXSkinImage1MouseUp(Sender: TObject; Button: TMouseButton;Shift: TShiftState; X, Y: Integer);
procedure Button2Click(Sender: TObject);
procedure SXSkinButton7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
DraggingForm:Boolean;
StartDragPT:TPoint;
end;
var
Form1 : TForm1;
myConf : File of TcetekSkin;
cetekSkin : TcetekSkin;
implementation
uses DateUtils;
{$R *.dfm}
Ketika form dijalankan maka yang akan dikerjakan adalah: mencari file ‘cetekskin.conf’, jika tidak ada maka skin akan dibuat default yaitu memanggil skin kayu, jika ada maka kode akan membaca isi file tersebut, jika file tidak ada isinya maka akan default ke skin kayu, jika ada, maka isi tersebut adalah nama skin yang akan dipanggil.
procedure TForm1.FormCreate(Sender: TObject);
var
dir,myfileconf : String;
begin
myfileconf:= 'cetekskin.conf';
if FileExists(myfileconf) then //check file ada/tidak
begin
AssignFile(myConf, myfileconf);
FileMode := fmOpenRead;
Reset(myConf);
Read(myConf, cetekSkin); //baca file
if cetekSkin.nameOfSkin<>''then
dir := GetCurrentDir +'/skin/'+cetekSkin.nameOfSkin //folder skin
else
dir := GetCurrentDir +'/skin/kayu'; //folder skin default
CloseFile(myConf);
end
else
dir := GetCurrentDir +'/skin/kayu'; //folder skin default
//actifkan skin terpilih
With SXSkinLibrary1 DO
Begin
SkinDir:= dir;
SkinFile:='skin.ini';
SkinFile2:='skin.ini';
Active:=True;
end;
end;
tiga procedure dibawah adalah setting agar form dapat didrag/digeser
procedure TForm1.SXSkinImage1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
begin
DraggingForm:=True;
StartDragPT:=Mouse.CursorPos;
Dec(StartDragPT.X,Left);
Dec(StartDragPT.Y,Top);
end;
end;
procedure TForm1.SXSkinImage1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var PT:TPoint;
begin
if DraggingForm then
begin
PT:=Mouse.CursorPos;
SetWindowPos(Handle,0,PT.X-StartDragPT.X,PT.Y-StartDragPT.Y,0,0,SWP_NOSIZE or SWP_NOZORDER);
end;
end;
procedure TForm1.SXSkinImage1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
DraggingForm:=False;
end;
//procedure untuk merubah setting skin
procedure TForm1.SXSkinButton7Click(Sender:TObject);
vardir : string;
begin
AssignFile(myConf, 'cetekskin.conf'); //setting file config
ReWrite(myConf); //kosongkan isi file
cetekSkin.nameOfSkin := ComboBox1.Text;
Write(myConf, cetekSkin); //tulis file dengan text combo terpilih
CloseFile(myConf);
//aktivkan skin
dir := GetCurrentDir + '/skin/'+ LowerCase(ComboBox1.Text);
With SXSkinLibrary1 DO
Begin
SkinDir:= dir;
SkinFile:='skin.ini';
SkinFile2:='skin.ini';
Active:=True;
end;
end;
end.
Monggo dicoba. Contoh sederhana.


Jika anda mau menjalankan dikomputer lain, sedangkan dikomputer baru tersebut ga ada SXSkinnya atau Delphi, maka file yang perlu di sertakan tentu saja .EXE dan folder skin
Jika anda mau membuat skin sendiri, anda bisa membuatnya dengan adobe photoshop atau program grafis lainnya yang bisa menghasilkan file *.png. anda tidak perlu mengotak-atik file skin.ini, anda cukup mereplace file *.png yang ada di folder skin dengan image baru anda, tentunya dengan memperhatikan size dari image-image yang sudah ada difolder skin tersebut.
Semoga ada manfaatnya. download skintest.zip 238kb
Mengeksekusi Aplikasi dan Files dari Delphi
Hemm saya ingin membuka file chm, atau html dibrowser, atau membuka file doc dengan MS Word langsung dari aplikasi Delphi yang saya buat. Yuk di coba.
Kode untuk mengeksekusi aplikasi atau file adalah shellExecute(), sebelumnya anda harus menambahkan sebuah library ShellApi di bagian uses. Yuk lihat beberapa contoh dibawah.
unit Unit1;
interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,StdCtrls, ShellApi;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.bukaAppWord(Sender: TObject);
begin
ShellExecute(Handle,'open','C:Program FilesMicrosoft OfficeOFFICE11WINWORD.EXE',nil,nil,SW_SHOWNORMAL)
end;
procedure TForm1.bukaFileDocPakeWord (Sender: TObject);
begin
ShellExecute(Handle,'open', 'C:Program FilesMicrosoft OfficeOFFICE11WINWORD.EXE','C:MyDocument.doc', nil, SW_SHOWNORMAL) ;
end;
procedure TForm1.bukaFileSesusaiTypenya(Sender: TObject);
begin
ShellExecute(Handle,'open','C:file.chm', nil,nil, SW_SHOWMAXIMIZED) ;
end;
procedure TForm1.bukaWebStillcetekCom(Sender: TObject);
begin
ShellExecute(Handle, 'open', 'http://www.stillcetek.com',nil,nil, SW_ SHOWMAXIMIZED) ;
end;
end.