Məlumat

TDBGrid komponentində rəngləmə üsulunu necə dəyişdirmək olar

TDBGrid komponentində rəngləmə üsulunu necə dəyişdirmək olar

Verilənlər bazası ızgaralarına rəng əlavə etmək görünüşü artıracaq və verilənlər bazasında müəyyən sətirlərin və ya sütunların əhəmiyyətini fərqləndirəcəkdir. Bunu məlumatları göstərmək üçün əla bir istifadəçi interfeysi təmin edən DBGrid-ə diqqət yetirərək bunu edəcəyik.

Bir verilənlər bazasını bir DBGrid komponentinə necə bağlayacağını bildiyinizi güman edəcəyik. Bunu həyata keçirməyin ən asan yolu Database Form Sihirbazından istifadə etməkdir. Seçin işçi.db DBDemos ləqəbindən başqa bütün sahələri seçin EmpNo.

Boyama sütunları

İstifadəçi interfeysini vizual olaraq artırmaq üçün edə biləcəyiniz ilk və asan şey məlumatları tanıyan şəbəkədəki fərdi sütunları rəngləndirməkdir. Bunu şəbəkənin TColumns mülkiyyəti sayəsində yerinə yetirəcəyik.

Formada grid komponentini seçin və Obyekt müfəttişindəki gridin Sütunlar xüsusiyyətini iki dəfə vuraraq Sütunlar redaktorunu çağırın.

Etmək üçün qalan bir şey, hər hansı bir sütun üçün hüceyrələrin fon rəngini təyin etməkdir. Mətnin ön rəngini almaq üçün şrift xüsusiyyətinə baxın.

İpucu: Sütunlar redaktoru haqqında daha çox məlumat üçün axtarın Sütunlar redaktoru: davamlı sütunlar yaratmaq Delphi yardım sənədlərinizdə.

Rənglər satır

DBGrid-də seçilmiş sətri rəngləndirmək istəyirsinizsə, lakin dgRowSelect seçimini istifadə etmək istəmirsinizsə (məlumatları redaktə etmək istəsəniz), bunun əvəzinə DBGrid.OnDrawColumnCell tədbirindən istifadə etməlisiniz.

Bu texnika rəngini dinamik olaraq necə dəyişdirəcəyini göstərir mətn bir DBGrid-də:

proseduru TForm1.DBGrid1DrawColumnCell
(Göndərən: TObject; const Düzəliş: TRect;
DataCol: tam; Sütun: TC sütun;
Dövlət: TGridDrawState);
başlamaq
əgər Cədvəl1.FieldByName ('Əmək haqqı') sonra
DBGrid1.Canvas.Font.Color: = clMaroon;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Sütun, Dövlət);
son;

Budur a rəngini dinamik olaraq dəyişdirmək sıra bir DBGrid-də:

proseduru TForm1.DBGrid1DrawColumnCell
(Göndərən: TObject; const Düzəliş: TRect;
DataCol: tam; Sütun: TC sütun;
Dövlət: TGridDrawState);
başlamaq
əgər Cədvəl1.FieldByName ('Əmək haqqı') sonra
DBGrid1.Canvas.Brush.Color: = clWhite;
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Sütun, Dövlət);
son;

Boyama hüceyrələri

Nəhayət, burada dəyişdirmək üçün necə fon rəngi hər hansı bir xüsusi sütunun hüceyrələrinin üstəgəl mətni ön rəng:

proseduru TForm1.DBGrid1DrawColumnCell
(Göndərən: TObject; const Düzəliş: TRect;
DataCol: tam; Sütun: TC sütun;
Dövlət: TGridDrawState);
başlamaq
əgər Cədvəl1.FieldByName ('Əmək haqqı') .Avval> 40000 sonra
başlamaq
DBGrid1.Canvas.Font.Color: = clWhite;
DBGrid1.Canvas.Brush.Color: = clBlack;
son;
əgər DataCol = 4 sonra // 4-cü sütun 'Əmək haqqı'
DBGrid1.DefaultDrawColumnCell
(Rect, DataCol, Sütun, Dövlət);
son;

Gördüyünüz kimi, bir işçinin məvacibi 40 mindən çoxdursa, Əmək haqqı hücrəsi qara rəngdə, mətn isə ağ rəngdə göstərilir.