![]() |
|
كيف تلوين القيم المكررة في DBGrid ؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : كيف تلوين القيم المكررة في DBGrid ؟ (/showthread.php?tid=12003) الصفحات:
1
2
|
تلوين dbgrid - tejmej - 27-09-2020 هل يوجد كود يمكن تلوين الخلايا المكررة في dbgrid أو مكون يقوم بالمهمة RE: تلوين dbgrid - محمد عبد العزيز - 27-09-2020 تلوين DBGrid بطريقة جميلة https://delphi4arab.net/forum/showthread.php?tid=654 RE: تلوين dbgrid - tejmej - 27-09-2020 أقصد لوين الخلايا المكررة في dbgrid RE: تلوين dbgrid - محمد عبد العزيز - 27-09-2020 تلوين الخلايا يتم باستغلال الحدث OnDrawColumnCell بالرابط السابق مرفق مثال +روابط متعلقة بتلوين خلايا Grid هذا نصف الطريق، الباقي عليك... فكر. RE: تلوين dbgrid - ALG2009 - 27-09-2020 السلام عليكم هل يمكن عند إضافة بعض الخصائص مثل تلوين الديبي كريد هل يمكن جعلها مكون يضاف من برمجتي أي كيف يمكنني برمجة مكون كالديبي قريد به إضافاتي الخاصة لكي لا أضطر كل مره أقوم بنفس الإجراءات RE: تلوين dbgrid - محمد عبد العزيز - 27-09-2020 كتب تعلم كتابة الكمبوننت https://delphi4arab.net/forum/showthread.php?tid=2255 RE: تلوين dbgrid - tejmej - 22-10-2020 لا توجد اجابة لتوين القيم المكررة في dbgrid RE: تلوين dbgrid - Delphi4Us - 26-10-2020 امثلة كود : procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Field: TField;
begin
// store the currently rendered cell's column assigned field reference
// (if any) to the local variable (there's quite expensive getter)
Field := Column.Field;
// if the rendered cell's column has assigned a field and this field's
// name is 'Clubs' (compared without case sensitivity), then, and only
// then change the brush color...
if Assigned(Field) and SameText(Field.FieldName, 'Clubs') then
begin
if Field.AsString = 'yes' then
DBGrid1.Canvas.Brush.Color := clRed
else
DBGrid1.Canvas.Brush.Color := clYellow;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;او كود : if Column.FieldName = 'Clubs' then
begin
if ADOTable1.FieldByName('Clubs').AsString = 'yes' then
DBGrid1.Canvas.Brush.Color := clRed
else
DBGrid1.Canvas.Brush.Color := clYellow;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);اولا اعتقد تحتاج الى البحث بالجدول عن القيم المكررة ولنفرض انك حصلت على كلمات مثل (سيارة، منزل ، سوق ) بعدها مكان الحقل بالاسم Clubs ستقول له ان كان يساوي سيارة او منزل او سوق فاجعل اللون كذا . اما مكون يدعم ذلك المكون EhLib يقوم بشي مماثل فقط انه يدمج الاعمدة للقيم المكررة ولا اعرف بالنسبة لتلوينها القيم المكررة - tejmej - 13-07-2022 ممكن كود في dbgrid لتلوين القيم المكررة الأسماء مثلا RE: كيف تلوين القيم المكررة في DBGrid ؟ - Delphi4Us - 15-07-2022 هذا مثال على السريع جربه كود : if (Column.Field.FieldName='name') and (Fname = Column.Field.Value) then
begin
DBGrid1.Canvas.Brush.Color := clRed ;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end else begin
DBGrid1.Canvas.Brush.Color := clWhite ;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
if (Column.Field.FieldName='name') then
Fname:=Column.Field.Value;الفكرة على السريع تحتاج منك ان تقوم بترتيب الاسماء ابجديا بحيث تصبح المتكررة وراء بعضها بعدها في حدث الرسم تقوم بمقارنة القيمة الجديدة بالقيمة السابقة لاحظ اقول السابقة لان المتغير الذي نضع فيه الاسم بنهاية الكود مما يجعل قيمته دائما هي القيمة السابقة فلو كانت متطابقة للقيمة الجديدة بالسطر الجديد يجعل لونه بالاحمر يحتاج منك الى القليل من الضبط والاهتمام ولو انني لا افضل هذا الاسلوب واظهار القيم المكررة بواسطة استعلام
Dbgrid.rar (الحجم : 57.17 ك ب / التحميلات : 38)
|