Penerangan Jalan Umum (PJU)

Judul ini emang gak ada ubungannya ama Penerangan Jalan Umum (PJU), tapi saya cuma mo nyimpen beberapa gambar yang saya punya di komputer saya saat nggarap kerjaan PJU di Kab. Pasuruan dan Bojonegoro.

bos kita tunggu di sini aja, ntar kalo dah jatuh biar kita duluan yg ambil mangganya, boss... kamu emang cerdas,
emang lagi nonton apaan sih? ada yang baru, gak?


kalo di pilem holiwut, musti alaremnya dah bunyi.

pasar yg terdekat adalah rumah kita, dan pembeli yg terdekat adalah teman kita.


selain kera, ada beberapa mahluk yg pandai memanjat, jadi jangan diremehkan... hehehe...

bukan korban bom bali 3.


software + hardware = tempat sampah




meja kerja sebuah kantor saat bos gak ada.


baru segitu di upload, besok2 lagi. Oke...

Cara Mudah Membuat Dockable Window dengan JVCL

aseli bikinan agus made

Pastikan paket komponen JVCL sudah terinstal pada delphi anda, jika belum silahkan download di : http://jvcl.sourceforge.net dan ikuti langkah instalasinya.

Jika semua sudah beres, kini kita mulai.

buat program baru, dan tambah kan dua form lagi, hingga program kita terdiri dari tiga Form. Jangan lupa set ukuran Form2 dan Form3 lebih kecil dari Form1 (sekitar 250x250an), dan set properti "formstyle"-nya menjadi "fsStayOnTop" karena ke dua form ini akan dijadikan Dockable Form.

pada Form1 (form utama) tambahkan dua buah Button, dan komponen TJvDockServer ( dari tab "Jv Docking" dikomponen palette), tambahkan juga salah satu komponen Dock Style (misalnya TJvDockVIDVCStyle).

set property JvDockServer1.DockStyle=JvDockVIDVCStyle1

pada Form2 tambahkan komponen TJvDockClient (juga dari tab "Jv Docking").

hubungkan Form2 dengan Form1, bisa dilakukan dengan menambahkan "Unit1" pada "uses" atau pilih menu "File | Use unit" kemudian pilih unit1.

set property JvDockClient1.DockStyle=Form1.JvDockVIDVCStyle1

lakukan hal yang sama (seperti Form2) untuk Form3.

beri event OnClick pada Button1 dan Button2 yang ada di Form1 untuk menampilkan masing-masing untuk menampilkan Form2 dan Form3.

kurang lebih begini :

//...
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Show;
end;
//...

selesai.

Jalankan program, klik Button1 dan Button2, arahkan ke dua Form ini ke pinggir Form1 lihat hasilnya.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

Photoshop Remote Control dengan Delphi

aseli bikinan agus made

Saatnya kita belajar implementasi OLE Automation, kali ini kita belajar cara sederhana mengendalikan Photoshop dari aplikasi yang kita buat dengan Delphi. Saya belum tahu mulai Photoshop versi berapa yang mendukung ini, yang jelas dengan Photoshop CS, tidak ada masalah.

Mula-mula jalankan Photoshop pada komputer anda, buka file gambar.

Buat program dengan delphi, tambahkan sebuah "Button" pada form, tambahkan "ComObj" pada "uses", beri event OnClick pada "Button", perhatikan source code berikut :

uses
//...
ComObj
//...

//...
procedure TForm1.Button1Click(Sender: TObject);
var
PhotoShop: OLEVariant;
begin
try
PhotoShop := CreateOleObject('Photoshop.Application');
except
ShowMessage('Error...');
Exit;
end;
//contoh GaussianBlur
PhotoShop.activeDocument.activeLayer.applyGaussianBlur(5);
end;
//...

Jalankan program anda, Klik Tombol-nya dan lihat di Photosop, gambar akan menjadi 'mblawur' karena efek "applyGaussianBlur" yang diperintahkan oleh program anda. Gampang khan?

Anda juga bisa memberikan efek lain, atau memberikan aktivitas lain pada Photoshop, untuk lebih jelasnya silahkan baca "Scripting Guide" pada Photoshop.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

Cara mudah membuat Aplikasi 3D OpenGL dengan Delphi menggunakan GLScene

aseli bikinan agus made

Kali ini kita belajar cara sangat sederhana membuat aplikasi 3D dengan OpenGL menggunakan Delphi dan GLScene. Latihan ini akan sangat tidak berguna jika anda sudah mahir, tapi jangan protes dulu, saya belum banyak melihat teman-teman membuat aplikasi Tiga Dimensi apalagi pake Delphi.

Seperti biasa, saya berasumsi GLScene sudah terinstal dengan baik pada delphi anda, kalo belum silahkan kunjungi web resmi GLScene di http://glscene.org/, download versi terbaru yang cocok dengan delphi anda dan ikuti petunjuk instalasinya.

Karena kemudahan menggunakan GLScene, anda tidak diwajibkan untuk tahu apa itu OpenGL, bagaimana menggunakannya apalagi bagaimana ia bekerja. namun jika anda tertarik untuk tahu lebih jauh silahkan kunjungi http://www.opengl.org/.

Langsung saja, buat proyek baru dengan delphi, tempatkan beberapa komponen, pada form anda, komponen-komponen tersebut antara lain: TGLScene,TGLSceneViewer dan TAsyncTimer (yang semuanya terdapat pada komponen palette "GLScene").


Double Click komponen "GLScene1", akan tampil dialog "GLScene Editor".

Pada "Object Treeview" pilih "Scene objects", klik kanan, pilih "Add object | DummyCube".

pilih "DummyCube1" (yang baru anda buat), klik kanan, pilih "Add object | Special objects | SpaceText".

pilih "SpaceText1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
Text="Agus Made Krisna" // ini cuma contoh, "AgusMade" saja juga boleh... :-)
Material.FrontProperties.Emission.Blue=0.718 // warnanya agak biru.
Position.X=-3.6 // geser ke kiri dikit.

kembali ke dialog "GLScene Editor" pilih "Scene objects", klik kanan, pilih "Add object | LightSource".

pilih "GLLightSource1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
Position.X=-2 // geser ke kiri dikit.
Position.Y=3 // geser ke atas dikit.
Position.Z=4 // geser ke depan dikit.

kembali lagi ke dialog "GLScene Editor" pilih "Cameras", klik kanan, pilih "Add camera".

pilih "GLCamera1" (yang baru anda buat), set Property-nya pada "Object Inspector" :
TargetObject=DummyCube1 // geser ke kiri dikit.
Position.X=-4 // geser ke kiri dikit.
Position.Y=-1 // geser ke bawah dikit.
Position.Z=3.5 // geser ke depan dikit.


Jika sudah, tampilan dialog "GLScene Editor" kira2 akan begini :

dialog "GLScene Editor" sudah boleh ditutup. Klik "GLSceneViewer1" pada form set property Camera=GLCamera1

Akhirnya tampillah dia :
Pada dasarnya program sudah bisa dijalankan tanpa harus mengetik source code sedikitpun. Namun sebagai programmer, masak bikin program hanya klak-klik saja... :-) Kita beri animasi berputar, (sekedar contoh Animasi 3D). Langkah2nya :
Pilih "AsyncTimer1" pada form, set property:
Enabled=True
Interval=1

beri "AsyncTimer1" Event "OnTimer" :

procedure TForm1.AsyncTimer1Timer(Sender: TObject);
begin
DummyCube1.Turn(1);
end;
Sudah selesai, gampang khan?... Oke, Jalankan program maka tampil Tulisan3D berputar :
silahkan download source code untuk Aplikasi ini disini

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

Cara mudah mengolah database MySQL dengan Delphi menggunakan Zeos

aseli bikinan agus made


Berikut kita belajar cara sangat sederhana mengelola database MySQL menggunakan Delphi dan Zeos. Latihan ini akan sangat tidak berguna jika anda sudah mahir, tapi jangan protes dulu, artikel ini saya muat di sini karena banyak teman yang minta ke saya, karena merasa terlalu awam dengan zeos.

Mula-mula, saya berasumsi zeos sudah terinstal dengan baik pada delphi anda, kalo belum silahkan download di http://www.sourceforge.net/projects/zeoslib, lalu ikuti petunjuk instalasinya.

Saya juga berasumsi bahwa MySQL sudah berjalan pada komputer anda atau setidaknya bisa diakses sepenuhnya dari komputer anda, kalo belum silahkan download di http://dev.mysql.com/downloads/, lalu ikuti petunjuk instalasinya.

dan

Saya juga berasumsi anda sudah dapat menggunakan MySQL dengan baik, entah menggunakan MySQL Front, SQLYog, PHPMyAdmin atau apa aja, yang penting bisa ..:) selanjutnya buat database "latihan" dan buat satu tabel "Anggota" dengan field "Id" varchar(15), "Nama" varchar(15), "Alamat" varchar(255), atau jalankan script berikut pada SQLEditor aplikasi anda:

create database if not exists `latihan`;
USE `latihan`;
DROP TABLE IF EXISTS `anggota`;
CREATE TABLE `anggota` (
`Id` varchar(15) NOT NULL default '',
`Nama` varchar(30) default NULL,
`Alamat` varchar(255) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;
insert into `anggota`(`Id`,`Nama`,`Alamat`)
values ('123','Agus Made','Yogyakarta'),
('456','Krisna Parta','Yogyakarta juga');
atau dump file "db_latihan.sql" dari source code latihan ini.

Buat proyek baru pada delphi yang kurang lebih tampilannya seperti gambar berikut :

Deklarasikan variabel gloabal "editmode" untuk pengelolaan mode tampilan dan akses terhadap setiap komponen:


//...
var
Form1: TForm1;
editmode:0..2=0;//0=browse 1=insert 2=edit
implementation
//...

Buat beberapa "procedure" bantu berikut, dan deklarasikan sebelum sintaks "private". kurang lebih seperti ini :

//...
procedure setmode;
procedure kosong;
procedure isi;
//...
private
//...
implementation
//...
procedure TForm1.setmode;
begin
tbTambah.Enabled:=editmode=0;
tbEdit.Enabled:=editmode=0;
tbSimpan.Enabled:=editmode>0;
tbBatal.Enabled:=editmode>0;
tbHapus.Enabled:=editmode=0;

edId.ReadOnly:=editmode=0;
edNama.ReadOnly:=editmode=0;
mmAlamat.ReadOnly:=editmode=0;
end;

procedure TForm1.kosong;
begin
edId.Text:='';
edNama.Text:='';
mmAlamat.Text:='';
end;

procedure TForm1.isi;
begin
edId.Text:=zqAnggota.fieldbyname('Id').asstring;
edNama.Text:=zqAnggota.fieldbyname('Nama').asstring;
mmAlamat.Text:=zqAnggota.fieldbyname('Alamat').asstring;
end;


lalu berikan event OnAfterScroll pada TZReadOnlyQuery "zqAnggota" dengan sintaks berikut:

procedure TForm1.zqAnggotaAfterScroll(DataSet: TDataSet);
begin
isi;
end;

berikan juga event OnFormShow pada TForm1 "Form1" dengan sintaks berikut:
procedure TForm1.FormShow(Sender: TObject);
begin
setmode;
end;


lalu berikan event OnClick pada TButton "tbTambah" dengan sintaks berikut:

procedure TForm1.tbTambahClick(Sender: TObject);
begin
case TButton(sender).tag of
0: begin editmode:=1; kosong; setmode; end; //tambah
1: begin editmode:=2; isi; setmode; end; //edit
2: begin editmode:=0; isi; setmode; end; //batal
3: begin //simpan
if editmode = 1 then //jika data adalah tambahan
zqProses.Script.Text:='insert into anggota(Id,Nama,Alamat)'+
'values("'+edId.text+'","'+edNama.text+'","'+mmAlamat.Text+'")'
else //jika data adalah editan
zqProses.Script.Text:='update anggota set'+
'Id="'+edId.text+'",Nama="'+edNama.text+'",Alamat= "'+
mmAlamat.Text+'" where Id="'+
zqAnggota.fieldbyname('Id').AsString+'"';
zqProses.Execute;

zqAnggota.Close; //biar refresh
zqAnggota.Open;
editmode:=0; setmode;
end;
4: begin //hapus
zqProses.Script.Text:='delete from anggota where '+
'Id="'+zqAnggota.fieldbyname('Id').AsString+'"';
zqProses.Execute;
zqAnggota.Close; //biar refresh
zqAnggota.Open;
end;
end;
end;

Event OnClick yang kita buat di atas sebenarnya berlaku untuk semua tombol (tbEdit, tbBatal, tbSimpan dan tbHapus) yang kita buat, menggunakan metode pembagian kerja berdasarkan property "Tag" pada "TButton" tersebut. Jadi hubungkan event OnClick semua tombol tersebut dengan "tbTambahClick"

jika semua sudah 'dilakoni' dengan baik, 'kayaknya' program 'gak bakalan' bermasalah. Jalankan program dan lihat hasilnya, kurang lebih akan seperti ini :

Semua tombol sudah berfungsi dengan baik. Sekali lagi contoh ini sangat sedarhana tidak menggunakan penangan error dan konfirmasi apapun. Pada implementasi sesungguhnya banyak hal yang perlu di'urusi'. Namun demikian setidaknya bagi yang belum pernah 'nyoba' handle MySQL dengan Delphi, bisa menyadari betapa mudah Zeos digunakan untuk hal ini.

silahkan download source code untuk Aplikasi ini disini.

Terima kasih
Agus Made K (http://agusmade.blogspot.com)

More

Label

3D (1) blogger (1) Canvas (2) cerita pribadi (4) cms (1) coreldraw (1) delphi (6) freeware (1) GLScene (1) gps (1) HTML5 (2) humor (1) library (1) mysql (4) OLE/DDE (1) online tools (2) oop (2) OpenGL (1) photoshop (2) php (1) PJU (2) project (4) referensi (1) software (9) tamzbackup (1) tutorial dasar (8) zeos (3)