UTAK ATIK DBGRID / CRDBGRID DENGAN MENAMBAH WARNA HOVER / WARNA SAAT MOUSE DI ATAS BARIS DAN MEMILIHNYA PADA DELPHI

hai sobat hibhib yang budiman, dbgrid bawaan standar delphi sering menyuguhkan warna secara default yang tidak bisa di ubah pada menu properties, warna tersebut biasanya adalah putih pada fontnya dan hitam pada backgroundnya saaat diselec record. hal ini sudah lumrah, tapi akan menjadi malasalah mana kala warna bacgroud dasarnya di ganti dan di utak atik, atau pingin lebih dengan warna sesuai custom atau yang kita inginkan,milsal Highlighting Mouse Pointer. berikut adalah cara hack atau mengubah tampilan dasar dari dbgrid atatu crdbgrid pada komponen mydac untuk delphi.
kami anggap anda sudah menguasai struktur dari unit.pas delphi
pada bagian code dibawah type tambahkan baris perintah berikut
THackingGrid = class(TDBGrid);
Arahkan kursor pada bagian deklarasi private dan public.
Tepat dibawah deklarasi private, sebelum public tambahkan deklarasi variabel, procedure dan property baru seperti ini:
Private
fMouseOver: Integer;
procedure SetMouseOver(const Value: Integer);
property MouseOver: integer read fMouseOver write SetMouseOver;
Arahkan kursor ke bagian implementation (dibawah kata kunci implementation), buat procedure SetMouseOver yang sudah dideklarasikan sebelumnya, menjadi seperti ini:
procedure TForm1.SetMouseOver(const Value: Integer);
begin
if fMouseOver <> Value then
begin
fMouseOver:= Value;
DBGrid1.Repaint;
end;
end;
Klik ganda menu OnMouseMove sehingga code editor akan mengantar kita bada kerangka kode event tersebut. Tepat diatas kata kunci begin, deklarasikan variabel baru:
var
point: TGridCoord;
begin
point:= DbGrid1.MouseCoord(x, y);
MouseOver:= point.Y;
end;
yang terakhir harus dilakukan adalah membuat koding yang terkait pada event untuk membuat highlighting baris data pada saat mouse melewati baris data DBGrid1. Untuk menyelesaikan tujuan itu, kembali ke Object Inspector, arahkan pada events OnDrawColumnCell lalu klik ganda hingga kerangka events terbuka pada code editor. Ketikkan kode seperti ini, tepat dibawah kata kunci begin:
procedure TForm1.DBGrid1DrawColumnCell
(Sender: TObject; const Rect: TRect; DataCol: Integer;
Column: TColumn; State: TGridDrawState);
begin
if (THackDBGrid(DBGrid1).DataLink.ActiveRecord + 1 =
THackDBGrid(DBGrid1).Row)
or (gdFocused in State) or (gdSelected in State) then
begin
DBGrid1.Canvas.Brush.Color := clSkyBlue;
DBGrid1.Canvas.Font.Style := DBGrid1.Canvas.Font.Style + [fsBold];
DBGrid1.Canvas.Font.Color := clRed;
end;
end;
sumber
hibhib.com

Tidak ada komentar:

Posting Komentar

Entri Populer