delphi4arab منتديات دلفي للعرب
تفنـن في DBGrid - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : دروس دلفي للمبتدئين (https://delphi4arab.net/forum/forumdisplay.php?fid=13)
+--- الموضوع : تفنـن في DBGrid (/showthread.php?tid=2170)



تفنـن في DBGrid - Lam.Abdeldjalil - 10-07-2010

السلام عليكم

لتجميل DBgrid القديم الذي إذا رأيته تتذكر الويندووز 98
و لجعله يأخذ تيم الويندووز XP في XP و يأخذ تيم الويندووز Win7 فيWin7

كما في الصورة

[صورة: themeddbgrig.jpg]

إليكم الطريقة :
- من دلفي 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]
هذه الطريقة تعطينا النتيجة السابقة
و للتلوين المتدرج ( عدم استعمال XPManifest لتظهر النتيجة )

[صورة: themed20102.jpg]

تصبح النتيجة

[صورة: themed20103.jpg]

و السلام عليكم



تفنـن في DBGrid - khiro.alg - 11-07-2010

جميل جدا أخي بارك الله فيك
لكنك إستعملت مكونات..


تفنـن في DBGrid - kachwahed - 13-07-2010

وعليكم السلام ورحمة الله وبركاته
ThemedDBGrid تعديل على المكون الأصلي TDBGrid لمبرمج ألماني andy يستخدم تقنية Interjected class لاحظ:
PHP كود :
TDBGrid = class(DBGrids.TDBGrid) // keep TDBGrid.ClassName = 'TDBGrid' 
مدونة المصدر:
كود :
http://andy.jgknet.de/blog/?page_id=206
أضفت عليها بعض اللمسات (Enter as tab, AutoSort, Draw Combobox...) سأطرحها حالما أنتهي منها.



تفنـن في DBGrid - Lam.Abdeldjalil - 14-07-2010

السلام عليكم

أود أن أشكر الأستاذ kachwahed على المعلومات

إسمح لي ببعض الإضافات قبل أن تضع عليها لمساتك

* لوضع زر ... في الـ DBGrid كما في الصورة
[صورة: dbgeideditbt.jpg]

هذه هي الطريقة إضغط مرتين على الـ DBGrid ثم أكمل كما في الصورة
[صورة: paramr.jpg]

و للتحكم في هذا الزر بواسطة الحدث 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 - Lam.Abdeldjalil - 09-08-2010

السلام عليكم

كثيرا ما نحتاج لحفظ خصائص أعمدة الـ 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 و ملفه )

و السلام عليكم