Delphi ListView排序

var
m_bSort:Boolean; //控制正反排序的变量

implementation

{$R *.dfm}
//ListView排序的回调函数,默认的是快速排序法,也可以自己在这里做算法
function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
var txt1,txt2:string;
begin
if ParamSort <> 0 then
begin
try
txt1:=Item1.SubItems.Strings[ParamSort-1];
txt2:=Item2.SubItems.Strings[ParamSort-1];
if m_bSort then begin
Result:=CompareText(txt1,txt2);
end else begin
Result:=-CompareText(txt1,txt2);
end;
except
end;

  end
  else
  begin
          if   m_bSort   then
          begin
                Result:=CompareText(Item1.Caption,Item2.Caption);
          end
          else
          begin
                Result:=-CompareText(Item1.Caption,Item2.Caption);
          end;
  end;

end;

procedure TFrm_CommunityModify.lv_SelectedHDTCColumnClick(Sender: TObject;
Column: TListColumn);
begin
lv_SelectedHDTC.CustomSort(@CustomSortProc,Column.Index);
m_bSort:=not m_bSort;
end;

Posted in 软件开发 at November 14, 2017. by 傻猫 .    Views: 1066    No Comments

ListView基本用法大全

Delphi ListView基本用法大全
//增加项或列(字段)

ListView1.Clear;
ListView1.Columns.Clear;
ListView1.Columns.Add;
ListView1.Columns.Add;
ListView1.Columns.Add;
ListView1.Columns.Items[0].Caption:='id';
ListView1.Columns.Items[1].Caption:='type';
ListView1.Columns.Items[2].Caption:='title';
ListView1.Columns.Items[2].Width:=300;
Listview1.ViewStyle:=vsreport;
Listview1.GridLines:=true;               //注:此处代码也可以直接在可视化编辑器中完成,

查看更多内容...

Posted in 软件开发 at November 27, 2012. by 傻猫 .    Views: 4703    1 Comment

listview选择行失去焦点后继续保持高亮

两种解决方法:
设置listview的hideselection 属性
1、hideselection=false

2、绘制一个高亮背景
在listview的onexit事件中添加代码
  try
      item:=lv_userinfo.Selected;
      r:=Item.DisplayRect(drSelectBounds);
      with  TCustomListView(sender).Canvas do
      begin
        Brush.Color:=clRed;                        //此处设置为红色
        FillRect(r);
        TextOut(r.Left+2,r.Top+2,item.SubItems.Strings[0]+'        '+item.SubItems.Strings[1]+'       '+item.SubItems.Strings[2]+'        '+item.SubItems.Strings[3]+'       '+item.SubItems.Strings[4]);
      end;
  except
  end;

Posted in 软件开发 at August 16, 2011. by 傻猫 .    Views: 6469    No Comments