View Full Version : سورت کردن گرید در دلفی 2010
  
accpascal
چهارشنبه 11 فروردین 1389, 01:22 صبح
دستور زیر در دلفی 7 کار می کند اما در دلفی 2010 کارنمی کند
 if (TCustomADODataSet(Self.DataSource1.DataSet).Sort= '')Or(Pos('DESC',TCustomADODataSet(Self.DataSource 1.DataSet).Sort)> 0) then
   TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' ASC'
 else
   TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' DESC';
ارور دلفی 2010 ارور syntax  وبشرح زیر است
 
Ambigous overloaded call to 'pos'
آیا می توان مشابه این دستور را در دلفی 2010 نوشت؟
ممنون از توجه شما
mrm0101
جمعه 13 فروردین 1389, 02:42 صبح
ُسلام براي سورت روي دي بي گريد از كد زير هم مي توانيد استفاده كنيد
در قسمت TitleClick
سورت صعودي 
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' ASC ';
سورت نزولي 
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +'  DESC ';
accpascal
یک شنبه 15 فروردین 1389, 11:27 صبح
ُسلام براي سورت روي دي بي گريد از كد زير هم مي توانيد استفاده كنيد
 
در قسمت TitleClick
 
سورت صعودي 
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +' ASC ';
 
 
سورت نزولي 
 
DataModule2.adoquery1.Sort :=DBGrid1.SelectedField.FieldName +'  DESC ';
 
کدی که من نوشتم قابلیت تبدیل سورت نزولی به صعودی و بالعکس را دارد ضمنا من کد خود را بشرح زیر اصلاح کردم و مشکل حل شد
procedure form1.DBGridTitleClick(Column: TColumn);
var s:string;
begin
 s:=TCustomADODataSet(Self.DataSource1.DataSet).Sor t;
 if (s='')Or(Pos('DESC',s)> 0) then
   TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' ASC'
 else
   TCustomADODataSet(Self.DataSource1.DataSet).Sort := Column.FieldName+' DESC';
 dbgrid.SetFocus;
end;
saeed19
پنج شنبه 19 فروردین 1389, 11:44 صبح
sortیک متغیر است
procedure TPersonal_info.Pay_DBGEh_PersonelTitleClick(Column : TColumnEh);
{$J+}
const
  PreviousColumnIndex: Integer = 0;
{$J-}
begin
  if (pos(Column.Field.FieldName, sort) = 1) and (pos(' DESC', sort) = 0) then
    sort := Column.Field.FieldName + ' DESC'
  else
    sort := Column.Field.FieldName + ' ASC';
  if Column.Title.SortMarker = smNoneEh then
  begin
    Column.Title.SortMarker := smDownEh;
  end
  else if Column.Title.SortMarker = smUpEh then
  begin
    Column.Title.SortMarker := smDownEh;
  end
  else if Column.Title.SortMarker = smDownEh then
  begin
    Column.Title.SortMarker := smUpEh;
  end;
  DM1.StP_personely.sort := sort;
end;
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.