السلام عليكم
لتجميل DBgrid القديم الذي إذا رأيته تتذكر الويندووز 98
و لجعله يأخذ تيم الويندووز XP في XP و يأخذ تيم الويندووز Win7 فيWin7
كما في الصورة
إليكم الطريقة :
- من دلفي 7 إلى 2007
الشروط :
* وجود XPManifest
* إضف إلى مشروعك الملف المرفق أسفل ThemedDBGrid.pas
الرابط الأصلي للملف :
كود :
http://cc.embarcadero.com/item/24513
تلوين سطر بسطر :
كود :
[align=left]if not(gdSelected in State) then begin
if ADOTable1.RecNo mod 2 =0 then
DBGrid1.Canvas.Brush.Color := $00C6FFFF // لون السطر 1
else DBGrid1.Canvas.Brush.Color := $00B7FBD2; // لون السطر 2
end
else begin
DBGrid1.Canvas.Font.Color := clBlack; // لون خط السطر المختار
DBGrid1.Canvas.Brush.Color := $00FFDFDF; // لون السطر المختار
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
[/align]
- دلفي 2010 لا داعي لإضافة الملف لأنه خاصيات جديدة
كود التلوين سطر بسطر :
كود :
[align=left]if not(gdSelected in State) then begin
if ADOTable1.RecNo mod 2 =0 then
DBGrid1.Canvas.Brush.Color := $00C6FFFF // لون السطر 1
else DBGrid1.Canvas.Brush.Color := $00B7FBD2; // لون السطر 2
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
[/align]
أنظر الصورة :
![[صورة: themed20101.jpg]](http://img401.imageshack.us/img401/6206/themed20101.jpg)
هذه الطريقة تعطينا النتيجة السابقة
و للتلوين المتدرج ( عدم استعمال XPManifest لتظهر النتيجة )
تصبح النتيجة
و السلام عليكم
جميل جدا أخي بارك الله فيك
لكنك إستعملت مكونات..
السلام عليكم
أود أن أشكر الأستاذ kachwahed على المعلومات
إسمح لي ببعض الإضافات قبل أن تضع عليها لمساتك
* لوضع زر ... في الـ DBGrid كما في الصورة
هذه هي الطريقة إضغط مرتين على الـ DBGrid ثم أكمل كما في الصورة
و للتحكم في هذا الزر بواسطة الحدث DBGrid1EditButtonClick في الـ DBGrid
يستخدم للتعديل مثلا لإظهار الفورم الخاصة بالتعديل
كود :
procedure TForm1.DBGrid1EditButtonClick(Sender: TObject);
begin
Form2.showmodal;
end;
* للترتيب حسب العنوان المضغوط دون إستعمال SQL أكتب هذا الكود
كود :
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
if ADODataSet1.IndexFieldNames = Column.Field.FieldName then
ADODataSet1.IndexFieldNames := Column.Field.FieldName + ‘ DESC’
else
ADODataSet1.IndexFieldNames := Column.Field.FieldName
end;
* لمعرفة عدد الحقول المختارة ووضعها في label1
كود :
label1.Caption :=inttostr(DBGrid1.SelectedRows.Count) ;
السلام عليكم
كثيرا ما نحتاج لحفظ خصائص أعمدة الـ DBGrid بعد التعديل عليها أثناء تشغيل البرنامج
مثل : تعديل عرض العمود / اللون / العنوان / الإظهار و الإخفاء
لحفظ خصائص أعمدة الـ DBGrid نستعمل فقط هذا الكود ( يستعمل مثلا عند الخروج من الفورم )
كود :
dbgrid1.Columns.SaveToFile('Filename');
Filename هو إسم الملف الذي تحفظ فيه الخصائص
لجلب خصائص أعمدة الـ DBGrid المحفوظة سابقا نستعمل فقط هذا الكود ( يستعمل مثلا عند إظهار الفورم أو عند إنشائها )
مع إضافة شرط بسيط للتأكد من أن الملف موجود و لاتخرج لنا رسالة خطأ في حالة عدم وجوده
كود :
if FileExists('Filename') then
dbgrid1.Columns.loadfromfile('Filename');
مثال على بعض الخصائص التي يتم تعديلها برمجيا
كود :
dbgrid1.Columns[0].Title.caption:='TitleName';
...
dbgrid1.Columns[0].Color:=clred;
...
dbgrid1.Columns[0].Visible:=false;
...
ملاحظة : لا يمكن حفظ خصائص أكثر من DBGrid واحد في ملف واحد ( كل DBGrid و ملفه )
و السلام عليكم