الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تلوين dbgrid

مغلق
بدأه sara_ali في 30 أغسطس 2005 · 11 رد · 2,978 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اود اعرف كيفية جعل dbgrid ملونة دائما صف بعد صف ؟؟

وعدم تكرار حقل المفتاحي في dbgrid مثلا لرقم الصنف في الفاتورة

وشكرا لكم

#2

وضحي الجزء الثاني من السؤال

أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر

وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري

كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو

أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري

عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري

فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري

منتديات الرياضيات العربية

#3

بالنسبة للقسم الاول

تم نقاش هذا الموضوع سابقا

هذا رابط الموضوع

/index.ph...ndpost&p=369369

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#4
procedure TAgreement.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
if odd((Table2.FieldByName('SrCode').AsInteger))   then
  begin
  DBGrid1.Canvas.Brush.Color:=clInactiveCaptionText;
  DBGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
  end;
  if not (odd((Table2.FieldByName('SrCode').AsInteger)))   then
  begin
  DBGrid1.Canvas.Brush.Color:=$0085DDFA;
  DBGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
  end;
end;
حيث ان Table2.FieldByName('SrCode').

هو اسم فيلد من ضمن الجدول المعروض ضمن القريد

تم تعديل هذه المشاركة بواسطة romanof في 31 أغسطس 2005 في 19:29

#5

هذا الكود أفضل وحر ولا يعتمد علي اشياء قيم معينة للبيانات

في الحدث

DBGrid1DrawColumnCell

ضع الكود

 var  RowHeight,Row:INteger;
  begin
  RowHeight := Rect.Bottom - Rect.Top+1;
  Row := (Rect.Top div RowHeight);
  if row mod 2= 0 then
  dbgrid1.Canvas.Brush.Color:=clInactiveCaptionText
  else
  dbgrid1.Canvas.Brush.Color:=$0085DDFA;
  dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
  end;

يمكنك التغيير الي الألوان المفضلة والمناسبة للون الخط

تم تعديل هذه المشاركة بواسطة romanof في 31 أغسطس 2005 في 19:31

#6

بالنسبة للجزء الثاني من السؤال هو عند اضافة سجل اخر في dbgrid ويكون موجود او تم اضافته من قبل وهو حقل مفتاحي يعرض رسالة key vialotion لذالك اريد عدم تكرار هذا الحقل

مثلا اريد صرف فاتورة لاكثرمن صنف

وكان رقم الصنف الاول 1 اسم الصنف ثلاجة ومثلا السجل الثاني قمت بوضع نفس رقم الصنف يعرض رسالة انه موجود سابقا حتى لايكون للفاتورة سجلين بنفس الصنف

وارجوان اكون قد اوضحت السؤال اكثر

وشكرا على اجابتكم السريعة بالفعل جزاكم الله خيرا

#7

هل الرقم الذي تضعه هو Auto Number ام لا

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#8
اقتباس
وعدم تكرار حقل المفتاحي في dbgrid

عدم تكرار الحقل يتم ضبتة من الجدول نفسة (من قاعدة البيانات) وليس من DbGried

#9

لا الحقل ليس auto number هو رقم الصنف

#10

اخي الكريم

لكي تضمن عدم تكرار اي حقل يجب عليك ان تضبط ذلك من قاعدة البيانات التي تستخدمها

و عند اذخال اي قيمة متكررة في الحقل خطأ من المستخدم سيتمم ظهور Exception

تدل على انه قمت بادخال قيمة متكررة في الحقل و لا يسمح بالحفظ حتى يتم تغيير القيمة

و انت كمبرمج تقوم بالتقاط هذا الخطأ و تظهر الرسالة التي ترغب بها لتحذر المستخدم

على كل

ما هي اسم قاعدة البيانات التي تستخدمها لكي اساعدك في فعل ذلك

Access,SQL server,Oracl..

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

#11

قاعدة البيانات هي paradox7

#12

اخي الكريم اليك الحل

قم بفتح DataBase Desktop ثم قم بفتح الجدول المطلوب

بعد فتح الجدول من Toolbar قم باختيار الامر Restructure

عندها يتم فتح نافذة فيها اسماء الحقول

العملية التي سنقوم بها هي وضع فهرس وحيد على الحقل الذي لا نريده ان يتكرر

1- من Table Properties قم باختيار Secondery Indexes

2- ثم اختار الزر Define

3- في الواجهة المفتوحة اممامك قم باختيار الحقل الذي تريده ان لا يتكرر من القائمة Fields

4- ثم قم باضافته الى القائمة Indexed Field

5- ثم قم بوضع اشارة صح على Unique

6- ثم اختر OK لتظهر نافذة اخرى تطالبك باسم لل Index قم بوضع اسم الحقل و قبله الحرفين XD مثلا

7- ثم قم باختيار OK ثم Save

الان اصبح هذا الحقل لا يمكن ان يتكرر ابدا

اذا ادخل المستخدم اي قيمة موجودة مسبقا لن يتم اضافتها

جرب ثم رد خبر

رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.

لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"

هذا الموضوع مغلق.

مواضيع مشابهة