لإعطاء المكون DbGrid شكل خاص وجميل سوف نقوم بتلوين الأعمدة Colums أو الأسطر Lines الخاصة بهذا المكون ليصبح على الشكل التالي:
ومن أجل عمل هذا نقوم بما يلي:
نقوم بزيادة السطر التالي مباشرة تحت
كود :
{$R *.DFM}
كود :
type
AlternGrid = class(TCustomDBGrid);
ثم نذهب إلى الحدث OnDrawColumCell الخاص بالمكون DbGrid ونكتب الكود التالي:
كود :
var dataset:Tdataset;
begin
dataset:= (Sender as TDBGrid).DataSource.DataSet;
with AlternGrid(Sender) do
begin
if (DataSet.RecNo mod 2 = 1 ) then
Canvas.Brush.Color := $00E6D9C4
else
Canvas.Brush.Color := $00EAF7FF;
if DataLink.ActiveRecord = Row -1 then
begin
Canvas.Font.Color:=clwhite ;
Canvas.Brush.Color:=clblack;
end; end ;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column, State);
02-04-2008, 11:32 PM (آخر تعديل لهذه المشاركة: 02-04-2008, 11:36 PM بواسطة مهدي.)
و هذه إضافة مني لكيفية تلوين الأعمدة
كود :
{this source created by mahdi, a member of delphi4arab forum
http://www.delphi4arab.net/forum/
تم إنجاز السورس من طرف مهدي العضو بمنتدى دلفي للعرب}
procedure TForm1.FormCreate(Sender: TObject);
var I: Integer;
begin
I:=0;
while I<DBGrid1.Columns.Count-1 do
begin
DBGrid1.Columns[i].Color:=$00E6D9C4;
// DBGrid1.Columns[i].Title.Color:=$00EAF7FF;
I:=I+1;
DBGrid1.Columns[i].Color:=$00EAF7FF;
// DBGrid1.Columns[i].Title.Color:=$00E6D9C4;
I:=I+1;
end;
end;
المشروع في المرفقات
ملاحظة: الكود لا يعمل مع الكود الأول الخاص بالأسطر
السلام عليكم ورحمة الله وبركاته
يا إخواني هناك طريقة أبسط من ذلك وبدون كود وهي أن تقوم ( دوبل كليك ) على Dbgrid
فتظهر لك نافة ( Modification de Dbgrid1.Columns ) فتنقر بالزر الأيسر للماوس و تختار Ajouter
فيظهر سطر مكتوب فيه TColumn قم بتبديله ما هو موجود في قاعدة البينات ولكين Nom مثلا ثم تضف
آخر فليكن Adresse ثم تذهب ل: Inspecteur d'objets فأختر اللون المناسب عن طريق الضغط على Color
بالنسبة لـ: Nom أصفر مثلا وأضغط على Adresse وأختر المناسب له.........وشكرا.
ولجعل تجيلات السطر الذي يؤشر اليه المؤشر ملونة عليك بهذا الكود :
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
If gdFocused in State then
with (Sender as TDBGrid).Canvas do
begin
@merouane على الرحب و السعد
"في رأيي، من الأفضل " من يريد صورة في خلفية DBGrid ""
ربما صحيح, لا كن في حالة إذا لم يكن image1 وراء Dbgrid تماما "أنت تفهم قصدي"
حظ موفق
فى الوقت الذى نجح مع الكود فى تلوين صف وترك الاخر بهذا الكود دون اضافة السطر السابق ذكره
PHP كود :
procedure TfrCataloge.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin if DBGrid1.DataSource.DataSet.RecNo mod 2 =1 then begin DBGrid1.Canvas.Brush.Color:=clHighlight; DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State); end; end;