6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
7 StdCtrls, ExtCtrls, ComCtrls, BottleDef;
10 TfrmChannelList = class(TForm)
11 lvwChannels: TListView;
15 btnSelectAll: TButton;
17 btnSelectNone: TButton;
18 procedure FormCreate(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 procedure btnOkClick(Sender: TObject);
21 procedure btnSelectAllClick(Sender: TObject);
22 procedure btnSelectNoneClick(Sender: TObject);
23 procedure lvwChannelsColumnClick(Sender: TObject; Column: TListColumn);
24 procedure lvwChannelsCompare(Sender: TObject; Item1, Item2: TListItem;
25 Data: Integer; var Compare: Integer);
28 FTempJoinList: TStringList;
29 SortColumn: integer; //
\97ñ
\83N
\83\8a\83b
\83N
\83\
\81[
\83g
\97p
30 SortDesc: boolean; //
\97ñ
\83N
\83\8a\83b
\83N
\83\
\81[
\83g
\97p
33 function Execute(List: TChannelList; Join: TStringList): boolean;
34 property JoinList: TStringList read FTempJoinList;
38 frmChannelList: TfrmChannelList;
46 function TfrmChannelList.Execute(List: TChannelList; Join: TStringList): boolean;
47 var i, count: integer;
50 lvwChannels.Items.Clear;
52 for i := 0 to List.Count-1 do begin
53 Item := lvwChannels.Items.Add;
54 Item.Caption := List.ChannelItem[i].Name;
55 Item.SubItems.Add(IntToStr(List.ChannelItem[i].Members));
56 Item.SubItems.Add(List.ChannelItem[i].Info);
57 Item.SubItems.Add(List.ChannelItem[i].Ghost);
58 if List.ChannelItem[i].NoPost then
59 Item.SubItems.Add('
\8eó
\90M
\90ê
\97p')
61 Item.SubItems.Add('
\92Ê
\8fí');
62 if Join.IndexOf(Item.Caption) >= 0 then begin
68 //
\83`
\83\83\83\93\83l
\83\8b\82É1
\8cÂ
\82à
\8eQ
\89Á
\82µ
\82Ä
\82¢
\82È
\82¢
\8fó
\91Ô
\82È
\82ç
\91S
\90\94\8eQ
\89Á
\82ð
\83f
\83t
\83H
\83\8b\83g
\82É
\82·
\82é
70 for i := 0 to lvwChannels.Items.Count-1 do
71 lvwChannels.Items[i].Checked := true;
72 Result := (ShowModal = mrOk);
75 procedure TfrmChannelList.FormCreate(Sender: TObject);
77 FTempJoinList := TStringList.Create;
80 procedure TfrmChannelList.FormDestroy(Sender: TObject);
85 procedure TfrmChannelList.btnOkClick(Sender: TObject);
89 for i := 0 to lvwChannels.Items.Count-1 do begin
90 if lvwChannels.Items[i].Checked then
91 FTempJoinList.Add(lvwChannels.Items[i].Caption);
95 procedure TfrmChannelList.btnSelectAllClick(Sender: TObject);
98 for i := 0 to lvwChannels.Items.Count-1 do begin
99 lvwChannels.Items[i].Checked := true;
103 procedure TfrmChannelList.btnSelectNoneClick(Sender: TObject);
106 for i := 0 to lvwChannels.Items.Count-1 do begin
107 lvwChannels.Items[i].Checked := false;
111 procedure TfrmChannelList.lvwChannelsColumnClick(Sender: TObject;
112 Column: TListColumn);
114 if SortColumn = Column.Index then
115 SortDesc := not SortDesc
117 SortColumn := Column.Index;
120 lvwChannels.AlphaSort;
123 procedure TfrmChannelList.lvwChannelsCompare(Sender: TObject; Item1,
124 Item2: TListItem; Data: Integer; var Compare: Integer);
128 if SortColumn = 0 then
129 Compare := CompareText(Item1.Caption,Item2.Caption)
131 ix := SortColumn - 1;
132 Compare := AnsiCompareStr(Item1.SubItems[ix],Item2.SubItems[ix]);
134 if SortDesc then Compare := -Compare; //
\8f¸
\8f\87