Selasa, 16 November 2010

Insert and display the icon into the Delphi Grid

Lagi nggak bisa tidur, padahal nanti pagi - pagi mau sholat Idul Adha rencananya, hemmmm enaknya ngapain ya...., dari pada bengong coba melongok ke blog saya ini rasanya sudah lama sekali tidak mengisi blog ini.

Ah... mending bikin artikel ini siapa tahu suatu saat ada teman - teman yang membutuhkan sebagai referensi heheheehhe walaupun tidak seberapa bagus tapi cukuplah untuk bahan oprekan bagi teman-teman yang membutuhkan, sesuai dengan judul diatas sebelumnya penulis pernah mengalami kesulitan dalam menampilkan icon kedalam grid yang kebetulan penulis menggunakan database mysql, dari beberapa kali experimen (caile... kayak prof aja padahal kebetulan aja bisa) akhirnya penulis dapat menyelesaikan masalah tersebut seperti tampilan berikut :

kita langsung aja ya,
yang kita butuhkan tentunya VCL yang mendukung koneksi kedatabase, dalam hal ini penulis menggunakan komponennya Zeos yang bisa didownload dibeberapa situs internet, kemudian setelah koneksikan database melalui komponen zeos, tambahkan komponen ZQuery untuk memfilter data yang akan kita butuhkan untuk ditampilkan kedalam grid.
selanjutnya tambahkan komponen ImageList, komponen Image serta komponen DataGrid.
sebelumnya silahkan buat folder untuk menempatkan file-file icon yang akan kita load nantinya dan disini penulis untuk memudahkan link ke field yang akan ditampilkan digunakan kode yang bersifat primary sebagai contoh tabel berikut :
Nama Tabel tbKurs
Field : kdNgr char(3) Primari key
Rupiah numeric(18,2)
Dolar numeric(18,2)

nah untuk kebutuhan linknya nama file icon penulis samakan dengan nama isi dari field KdNgr.
selanjutnya kita buat procedure untuk mengenali dan menempatkan icon kedalam colom di grid

procedure TForm5.cekbendera;
var nm:string;
begin
       with qKurs do
       begin
           first;
               while not Eof do
                   begin    
                           nm:=trim(Fields[0].Value);
                           Try
                                   image1.Picture.LoadFromFile('D:\delphi\Delphi\Kurs Mandiri\bendera\ICON\'+nm+'.ICO');
                                     ImageList1.AddIcon(Image1.Picture.icon);
                           except
                     End;
                     next;
               end;
         end;
end;


selanjutnya letakkan even DrawColumnCell kedalam Grid dengan kode berikut:
procedure TForm5.Grid1DrawColumnCell(Sender: TObject; const Rect: TRect;
begin
            s:=0;
            with BGrid1 do
            begin
                  if DataCol=0 then
                  begin
                        ImageList1.Draw(Canvas,rect.Left+30, Rect.Top+1,qKurs.Fields[3].value);
                  end;
            end;

end;


Jadi deh... tinggal selanjutnya tinggal kita tentukan kapan nih procedure kita panggil;
bisa pula pada saat even form on Create dengan mengetikkan perintah berikut:

Procedure Form5.FormCreate(Sender: TObject);
begin
      ZQuery.active:=true;
      cekbendera;
end;

Tidak ada komentar: