From e602f80e6a357a6b9cd0a6d98b9cdd8323cf9061 Mon Sep 17 00:00:00 2001 From: h677 Date: Fri, 19 Nov 2004 14:24:45 +0000 Subject: [PATCH] =?utf8?q?=E3=82=AB=E3=83=A9=E3=83=A0=E3=82=AF=E3=83=AA?= =?utf8?q?=E3=83=83=E3=82=AF=E3=81=A7=E3=82=BD=E3=83=BC=E3=83=88=E3=81=A7?= =?utf8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= =?utf8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Round.dfm | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++---------- Round.pas | 60 +++++++++++++++++- 2 files changed, 229 insertions(+), 35 deletions(-) diff --git a/Round.dfm b/Round.dfm index 738f957..95050da 100644 --- a/Round.dfm +++ b/Round.dfm @@ -1,6 +1,6 @@ object RoundDialog: TRoundDialog - Left = 278 - Top = 186 + Left = 323 + Top = 180 Width = 600 Height = 427 BorderIcons = [biSystemMenu] @@ -86,6 +86,8 @@ object RoundDialog: TRoundDialog TabOrder = 0 ViewStyle = vsReport OnChange = RoundListViewChange + OnColumnClick = RoundListViewColumnClick + OnCompare = RoundListViewCompare end end object Panel3: TPanel @@ -141,6 +143,7 @@ object RoundDialog: TRoundDialog Bevel = pbNone Width = 0 end> + SimplePanel = False end object Button1: TButton Left = 104 @@ -181,11 +184,139 @@ object RoundDialog: TRoundDialog end end object ItemIcon16: TImageList - Left = 356 + Left = 360 Top = 4 Bitmap = { - 494C010102000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 - 0000000000003600000028000000400000001000000001001000000000000008 + 494C010104000900040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000400000003000000001001000000000000018 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -204,33 +335,33 @@ object RoundDialog: TRoundDialog 0000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000001042FF7F1863E07F1863E07F 1863E07F1863E07F18630000104200000000000000001042FF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000010421042FF7FE07F1863E07F1863 + FF7FFF7FFF7FFF7FFF7FFF7F186300000000000000000000FF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7F000000000000000000000000000000000000000000001042 + FF7F0000000000000000000000000000000010421042FF7FE07F1863E07F1863 E07F1863E07F186310420000000000000000000000001042FF7F104210421042 - 10421042104210421042FF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001042FF7FE07F1863E07F1863E07F + 10421042104210421042FF7F1863000000000000000000001042104200000000 + 00000000FF7FFF7F000000000000000000000000000000000000000010421042 + FF7FFF7F00000000000000000000000000001042FF7FE07F1863E07F1863E07F 1863E07F1863E07F00001863186300000000000000001042FF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000001042FF7FFF7FFF7FFF7FFF7FFF7F + FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000104200000000 + 00000000FF7F0000000000000000000000000000000000000000000010420000 + 0000FF7F00000000000000000000000000001042FF7FFF7FFF7FFF7FFF7FFF7F FF7FFF7FFF7F104200001F00FF7F18630000000000001042FF7F104210421042 - 10421042104210421042FF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 0000000000000000000000000000000000000000104210421042104210421042 + 10421042104210421042FF7F1863000000000000000000000000104210420000 + 0000FF7FFF7F0000000000000000000000000000000000000000104210420000 + 0000FF7FFF7F0000000000000000000000000000104210421042104210421042 10421042104210421042FF7FFF7F00000000000000001042FF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000001042FF7FE07F18631042FF7F + FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000010420000 + 0000FF7F00000000000000000000000000000000000000000000104200000000 + 00000000FF7F00000000000000000000000000001042FF7FE07F18631042FF7F FF7F1F0018631F00FF7FFF7F000000000000000000001042FF7F104210421042 - 10421042104210421042FF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000001042FF7F1863E07F18631042 + 10421042104210421042FF7F1863000000000000000000000000000010421042 + FF7FFF7F00000000000000000000000000000000000000001042104200000000 + 00000000FF7FFF7F0000000000000000000000001042FF7F1863E07F18631042 FF7FFF7F1F00FF7FFF7F0000104200000000000000001042FF7FFF7FFF7FFF7F - FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000000000000 - 0000000000000000000000000000000000000000000000000000000000000000 - 00000000000000000000000000000000000000001042FF7FE07F1863E07F1863 + FF7FFF7FFF7FFF7FFF7FFF7F1863000000000000000000000000000000001042 + FF7F000000000000000000000000000000000000000000001042104210421042 + 10421042104210420000000000000000000000001042FF7FE07F1863E07F1863 1042FF7FFF7FFF7F00001042104200000000000000001042FF7F104210421042 10421042104210421042FF7F1863000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -251,12 +382,19 @@ object RoundDialog: TRoundDialog 1042104210421042104200000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000424D3E000000000000003E000000 - 2800000040000000100000000100010000000000800000000000000000000000 - 000000000000000000000000FFFFFF00FFFFC00100000000E001C00100000000 - C001C00100000000C001C001000000008001C001000000000001C00100000000 - 0001C001000000000000C001000000008001C001000000008001C00100000000 - 8001C001000000008003C00100000000C01FC00100000000E1BFC00300000000 - FFFFC00700000000FFFFC00F0000000000000000000000000000000000000000 - 000000000000} + 2800000040000000300000000100010000000000800100000000000000000000 + 000000000000000000000000FFFFFF0000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000000000000000000FFFFC001FFFFFFFFE001C001FFFFFFFF + C001C001FFFFFFFFC001C001FFFFFFFF8001C001E01FFCFF0001C001E79FF87F + 0001C001F7BFFB7F0000C001F33FF33F8001C001FB7FF7BF8001C001F87FE79F + 8001C001FCFFE01F8003C001FFFFFFFFC01FC001FFFFFFFFE1BFC003FFFFFFFF + FFFFC007FFFFFFFFFFFFC00FFFFFFFFF} end end diff --git a/Round.pas b/Round.pas index 19fae85..ba706f0 100644 --- a/Round.pas +++ b/Round.pas @@ -27,7 +27,7 @@ type Button1: TButton; RoundButton: TButton; StatusBar1: TStatusBar; - RoundListView: TListView; + RoundListView: TListView; procedure RoundButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure RoundListViewChange(Sender: TObject; Item: TListItem; @@ -36,8 +36,14 @@ type 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 éŒ¾ } + FColumnToSort: Integer; + FSortOrder: Boolean; function GetRoundCount: Integer; procedure SetRoundItem(RoundName: string); function CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean; @@ -51,7 +57,7 @@ type implementation uses - Giko, BoardGroup, RoundData; + Giko, BoardGroup, RoundData, Math; {$R *.DFM} @@ -161,6 +167,7 @@ procedure TRoundDialog.FormCreate(Sender: TObject); var i: Integer; begin + FColumnToSort := -1; RoundNameComboBox.Items.Add('i‚·‚ׂāj'); for i := 0 to RoundList.RoundNameList.Count - 1 do RoundNameComboBox.Items.Add(RoundList.RoundNameList[i]); @@ -306,4 +313,53 @@ begin 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. -- 2.11.0