Ramazan
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору unit Unit16; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ImgList, StdCtrls; type TForm16 = class(TForm) ListView: TListView; ImageList: TImageList; btn: TButton; procedure btnClick(Sender: TObject); procedure ListViewCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); private { Private declarations } public { Public declarations } end; var Form16: TForm16; implementation {$R *.dfm} function CompareProc(Item1, Item2: Integer; Data: Integer): Integer; stdcall; begin if TListItem(Item1).ImageIndex = TListItem(Item2).ImageIndex then Result := AnsiCompareText(TListItem(Item1).Caption, TListItem(Item2).Caption) else // Предполагается, что ImageIndex папки равен 0 if TListItem(Item1).ImageIndex = 0 then Result := -1 else Result := +1; end; procedure TForm16.btnClick(Sender: TObject); begin ListView.CustomSort(CompareProc, 0); end; procedure TForm16.ListViewCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); begin if Item1.ImageIndex = Item2.ImageIndex then Compare := AnsiCompareText(Item1.Caption, Item2.Caption) else if Item1.ImageIndex = 0 then Compare := -1 else Compare := +1; end; end.
---------- Per rectum ad... |
| Всего записей: 359 | Зарегистр. 13-04-2002 | Отправлено: 13:05 11-06-2009 | Исправлено: Ramazan, 10:02 12-06-2009 |
|