Recent

Author Topic: تغير لون خط الخلية المحددة في dbgrid  (Read 1045 times)

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
السلام عليكم
لقد أستطعت بإستعمال الحدث PrepareCanvas بتغيير لون أسطر DBGrid حسب الشروط
المشكل هو عند تحديد خلية ما يتحول لون الخط إلى أبيض أريد أن أعرف كيف أغير لون الخط للخلية المحددة

Zaher

  • Hero Member
  • *****
  • Posts: 672
    • parmaja.org
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #1 on: April 14, 2022, 11:56:51 am »
استعمل OnDrawColumnCell لتغيير خصائص الخط
Code: Pascal  [Select][+][-]
  1. (Sender as TDBGrid).Font.Color := clBlack
  2.  
« Last Edit: April 21, 2022, 12:58:23 am by Zaher »

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #2 on: April 14, 2022, 01:20:26 pm »
الكود  نجح بهذا الشكل
Code: Pascal  [Select][+][-]
  1. (Sender as TDBGrid).Canvas.Font.Color := clBlue;
  2.  
وفي الحدث PrepareCanvas
ولكن أنا أسئل عن تغيير لون الخط للخلية المحددة فقط ليس كل الخلايا

nouzi

  • Moderator
  • Sr. Member
  • *****
  • Posts: 261
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #3 on: April 16, 2022, 01:18:11 pm »
جرب اضافة هذا
Code: [Select]
if DBGrid.DataSource.DataSet.FieldByName('اسم الحقل') then
Sender as TDBGrid).Canvas.Font.Color := clBlue;
« Last Edit: April 16, 2022, 01:31:02 pm by nouzi »
My English is  bad
Lazarus last version free pascal last version
Lazarus trunk  free pascal trunk 
System : Linux mint  64bit  Windows 7 64bit

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #4 on: April 18, 2022, 07:00:27 am »
جرب اضافة هذا
Code: [Select]
if DBGrid.DataSource.DataSet.FieldByName('اسم الحقل') then
Sender as TDBGrid).Canvas.Font.Color := clBlue;
من خلال إجابتك أخي يبدوا أن سؤالي غير مفهوم مع العلم أن في إجابتك نقص فعملية المقارنة غير كاملة
أنا اريد أن أعرف الخلية أو السطر المحدد (row selected) لتغيير لون الخط

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #5 on: April 18, 2022, 01:08:28 pm »
السلام عليكم
لقد وجدت هذا الكود رغم أنه لا يغير لون الخط وإنما يغير لون الخلية المحددة
ولقد ساعدني في حل المشكل
Code: Pascal  [Select][+][-]
  1. procedure TForm1.DBGrid1PrepareCanvas(sender: TObject; DataCol: Integer;
  2.   Column: TColumn; AState: TGridDrawState);
  3. begin
  4.   if (gdSelected in AState) then
  5.          begin
  6.           DBGrid1.Canvas.Brush.Color := clBlue;
  7.          end;
  8.  
  9. end;
  10.  
  11.  
شكرا للجميع  ::)

nouzi

  • Moderator
  • Sr. Member
  • *****
  • Posts: 261
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #6 on: April 19, 2022, 01:30:46 pm »
من خلال إجابتك أخي يبدوا أن سؤالي غير مفهوم مع العلم أن في إجابتك نقص فعملية المقارنة غير كاملة
أنا اريد أن أعرف الخلية أو السطر المحدد (row selected) لتغيير لون الخط
صحيح  جوبتك على عجل

في  محاولتك الأخير كان عليك  استبدال  هذا
Code: Pascal  [Select][+][-]
  1. DBGrid1.Canvas.Brush.Color := clBlue;
  2.  

بهذاء
Code: Pascal  [Select][+][-]
  1.  DBGrid1.Canvas.font.Color := clBlue;
  2.  
هنتك مثال  مرفق
« Last Edit: April 19, 2022, 01:33:26 pm by nouzi »
My English is  bad
Lazarus last version free pascal last version
Lazarus trunk  free pascal trunk 
System : Linux mint  64bit  Windows 7 64bit

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #7 on: April 20, 2022, 09:02:53 am »
من خلال إجابتك أخي يبدوا أن سؤالي غير مفهوم مع العلم أن في إجابتك نقص فعملية المقارنة غير كاملة
أنا اريد أن أعرف الخلية أو السطر المحدد (row selected) لتغيير لون الخط
صحيح  جوبتك على عجل

في  محاولتك الأخير كان عليك  استبدال  هذا
Code: Pascal  [Select][+][-]
  1. DBGrid1.Canvas.Brush.Color := clBlue;
  2.  

بهذاء
Code: Pascal  [Select][+][-]
  1.  DBGrid1.Canvas.font.Color := clBlue;
  2.  
هنتك مثال  مرفق
بارك الله فيك  ::)

Zaher

  • Hero Member
  • *****
  • Posts: 672
    • parmaja.org
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #8 on: April 21, 2022, 12:59:02 am »
استعمل ال Sender  لضمان التعامل مع نفس الغريد

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #9 on: April 22, 2022, 05:38:26 am »
بالنسبة لهذا الكود الخاص بتلوين الخط
Code: Pascal  [Select][+][-]
  1.  
  2.  DBGrid1.Canvas.font.Color := clBlue;
  3.  
فإنه يعمل عند وضعه في شروط الأخري ولكن لا يعمل مع شرط الخلية المحددة
فالخلية المحددة يبقى دوما لون الخط أبيض

استعمل ال Sender  لضمان التعامل مع نفس الغريد
نعم
شكرا وبارك الله فيك
لقد فهمت الأن لما كنتم تضعون هذا في أمثلتكم عوض إسم الأداة مباشرة

nouzi

  • Moderator
  • Sr. Member
  • *****
  • Posts: 261
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #10 on: April 22, 2022, 04:27:51 pm »
راجع المشروع في المرفقات
My English is  bad
Lazarus last version free pascal last version
Lazarus trunk  free pascal trunk 
System : Linux mint  64bit  Windows 7 64bit

Al-Eid

  • Jr. Member
  • **
  • Posts: 59
Re: تغير لون خط الخلية المحددة في dbgrid
« Reply #11 on: May 05, 2022, 10:57:30 am »
السلام عليكم وعيدكم مبارك
لقد راجعت المشروع بالفعل الفكرة تعمل
ولكنها لم تعمل معي حتى قمت بتغيير dbgrid  فنجح الأمر
يبدو أن هناك خصائص  قمت بتغييرها جعل الأمر يبدو غير صحيح

 

TinyPortal © 2005-2018