下载此文档

进一步完善应用程序.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
进一步完善应用程序
到上一讲为至,Mp3Collect程序已经具有了记录、编辑、存取文件、查找记录、播放MP3音乐等功能,基本上达到了我们的设计目标,但就操作方便程度而言,Mp3Collect还有所欠缺,因此在本讲中,我们就来为Mp3Collect添加一些辅助功能,使之更加完善。
实现排序功能
为Mp3Collect添加排序功能之后,用户只要用鼠标点击记录列表框的某一列标题头,就可以以该项内容为基础按照字母排列顺序对记录进行排序,如果用户连续两次点击同一列,则可以在升序排列和降序排列之间切换。要实现这个功能,首先需要响应列表框的标题点击事件OnColumnClick,在该事件处理函数中判断是哪一列的标题头被点击,并利用列表框控件的AlphaSort()方法对列表框中的记录进行排序。
AlphaSort()方法可以依据两种标准来进行排序,一是根据列表框控件的SortType属性,该属性支持按照列表项的Caption属性以及Data属性进行排序,而本程序中需要实现对任意一个子列进行排序,不能通过简单地设置SortType属性来实现,因此我们采用第二种方法,pare事件处理函数。pare事件处理函数之后,列表框控件在排序时会自动调用该函数来比较两个列表项的次序,pare返回的结果进行排序。
pare两个事件的处理函数:
//pare事件处理函数,其中参数Item1和Item2是进行比较的列表项,
//pare返回比较的结果。
void __fastcall TMainForm::pare(TObject *Sender, TListItem *Item1, TListItem *Item2, int Data, int &Compare)
{
if (ColumnToSort == 0)//如果ColumnToSort为0,则按列表项Caption属性进行比较
Compare = CompareText(Item1->Caption,Item2->Caption);
else //如果ColumnToSort不为0,计算子列的序号,并按子列项进行比较
{
int ix = ColumnToSort-1;
Compare = CompareText(Item1->SubItems->Strings[ix], Item2->SubItems->Strings[ix]);
}
//Tag属性为1时升序排列,为0时降序排列
if(ListView1->Columns->Items[ColumnToSort]->Tag) Compare = -Compare;
}
//ListView1控件的OnColumnClick事件处理函数
void __fastcall TMainForm::ListView1ColumnClick(TObject *Sender, TListColumn *Column)
{
//如果是连接点击同一列,则切换该列的升、降序标志,否则记录新的排序列号
if(ColumnToSort==Column->Index) Column->Tag = 1-Column->Tag;
else ColumnToSort = Column->Index;
//调用列表框控件的排序方法
((TCusto

进一步完善应用程序 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人894280529
  • 文件大小67 KB
  • 时间2018-10-17
最近更新