![]() |
|
كيف ارتب الجدول 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=7039) |
كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات في دلفي - عبدالباقي - 11-06-2015 السلام عليكم كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات و اضهاره على تطبيق دالفي كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات في دلفي - Mr.DOS - 11-06-2015 السلام عليكم استعمل Query كود : SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC;كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات في دلفي - karimprog - 30-06-2015 السلام عليكم ملاحظة هاته اول مشاركة لي اعتذر كوني لا اجيد التعامل مع الموقع و خاصة كيفية كتابة الكود و ارساله ربما يكون مبعثر بعض الشي لكنه صحيح و شغال و هو سهل جدا. على العموم هناك ملف مرفق يشمل الكود كاملا مع source ترتيب DBGRID سهل جدا و دون الحاجة الى SQL ضع الاكواد التالية في DBGRID الكود الاول يسمح بمعرفة احداثيات الماوس حتى يتم الترتيب حسب الحقل الذي يوجد فوقه الماوس كود : procedure TForm1.DBGrid1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var
pt: TGridcoord;
begin
pt:= DBGrid1.MouseCoord(x, y);
if pt.y=0 then
DBGrid1.Cursor:=crHandPoint
else
DBGrid1.Cursor:=crDefault;
end;الكود الثاني يسمح بالترتيب الفعلي لـ DBGRID حين الضغط على عنوان الجدول كود : procedure TForm1.DBGrid1TitleClick(Column: TbsColumn);
{$J+}
const PreviousColumnIndex : integer = 0;
{$J-}
begin
if DBGrid1.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
begin
try
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
except
end;
Column.title.Font.Style :=
Column.title.Font.Style + [fsBold];
PreviousColumnIndex := Column.Index;
if (Pos(Column.Field.FieldName, Sort) = 1)
and (Pos(' DESC', Sort)= 0) then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end;
end;RE: كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات في دلفي - format82 - 18-03-2017 (30-06-2015, 05:09 AM)karimprog كتب : السلام عليكم هذا الكود يعمل في دلفي 7 و لكن لا يعمل في XE 10 .1 ما الحل RE: كيف ارتب الجدول dbgrid في البرنامج تنازليا على قاعدة البيانات في دلفي - format82 - 23-03-2017 الحمد لله تم تعديل الكود حيث يعمل الان في XE 10.1 هذا هو الكود حتي يستفيد منه الجميع كود : {$J+}
const PreviousColumnIndex : integer = 0;
{$J-}
begin
if DBGrid1.DataSource.DataSet is TCustomADODataSet then
with TCustomADODataSet(DBGrid1.DataSource.DataSet) do
begin
try
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style :=
DBGrid1.Columns[PreviousColumnIndex].title.Font.Style - [fsBold];
except
end;
Column.title.Font.Style :=
Column.title.Font.Style + [fsBold];
PreviousColumnIndex := Column.Index;
if (Pos (WideString (Column.Field.FieldName), Sort) = 1) and (Pos (WideString ('DESC'), Sort) = 0) then
Sort := Column.Field.FieldName + ' DESC'
else
Sort := Column.Field.FieldName + ' ASC';
end; |