Button1: TButton;
RoundButton: TButton;
StatusBar1: TStatusBar;
- RoundListView: TListView;
+ RoundListView: TListView;
procedure RoundButtonClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure RoundListViewChange(Sender: TObject; Item: TListItem;
procedure AllCancelButtonClick(Sender: TObject);
procedure RoundNameComboBoxChange(Sender: TObject);
procedure RoundDeleteButtonClick(Sender: TObject);
+ procedure RoundListViewColumnClick(Sender: TObject;
+ Column: TListColumn);
+ procedure RoundListViewCompare(Sender: TObject; Item1,
+ Item2: TListItem; Data: Integer; var Compare: Integer);
private
{ Private \90é\8c¾ }
+ FColumnToSort: Integer;
+ FSortOrder: Boolean;
function GetRoundCount: Integer;
procedure SetRoundItem(RoundName: string);
function CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean;
implementation
uses
- Giko, BoardGroup, RoundData;
+ Giko, BoardGroup, RoundData, Math;
{$R *.DFM}
var
i: Integer;
begin
+ FColumnToSort := -1;
RoundNameComboBox.Items.Add('\81i\82·\82×\82Ä\81j');
for i := 0 to RoundList.RoundNameList.Count - 1 do
RoundNameComboBox.Items.Add(RoundList.RoundNameList[i]);
end;
end;
+procedure TRoundDialog.RoundListViewColumnClick(Sender: TObject;
+ Column: TListColumn);
+begin
+ if FColumnToSort > -1 then
+ (Sender as TCustomListView).Column[FColumnToSort].ImageIndex := -1;
+
+ if FColumnToSort = Column.Index then
+ FSortOrder := not FSortOrder
+ else
+ FSortOrder := false;
+
+ if FSortOrder then
+ Column.ImageIndex := 3
+ else
+ Column.ImageIndex := 2;
+
+ FColumnToSort := Column.Index;
+ (Sender as TCustomListView).AlphaSort;
+end;
+
+procedure TRoundDialog.RoundListViewCompare(Sender: TObject; Item1,
+ Item2: TListItem; Data: Integer; var Compare: Integer);
+var
+ ix: Integer;
+begin
+ if FColumnToSort = 0 then begin
+ if not FSortOrder then begin
+ Compare := CompareText(Item1.Caption,Item2.Caption);
+ if Compare = 0 then
+ Compare := CompareValue(Item1.ImageIndex, item2.ImageIndex);
+ end else begin
+ Compare := -CompareText(Item1.Caption,Item2.Caption);
+ if Compare = 0 then
+ Compare := -CompareValue(Item1.ImageIndex,item2.ImageIndex);
+ end;
+ end else begin
+ ix := FColumnToSort - 1;
+ if not FSortOrder then begin
+ Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
+ if Compare = 0 then
+ Compare := CompareValue(Item1.ImageIndex, item2.ImageIndex);
+ end else begin
+ Compare := -CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
+ if Compare = 0 then
+ Compare := -CompareValue(Item1.ImageIndex, item2.ImageIndex);
+ end;
+ end;
+end;
+
end.