OSDN Git Service

This commit was manufactured by cvs2svn to create branch 'Bb62'.
[gikonavigoeson/gikonavi.git] / Round.pas
index 9192255..db3f95d 100644 (file)
--- a/Round.pas
+++ b/Round.pas
@@ -36,8 +36,16 @@ 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);
+    procedure RoundListViewColumnRightClick(Sender: TObject;
+      Column: TListColumn; Point: TPoint);
        private
                { Private \90é\8c¾ }
+               FColumnToSort: Integer;
+               FSortOrder:     Boolean;
                function GetRoundCount: Integer;
                procedure SetRoundItem(RoundName: string);
                function CompareTime(Time1: TDateTime; Time2: TDateTime; MarginMin: Integer): Boolean;
@@ -49,7 +57,7 @@ type
 implementation
 
 uses
-       Giko, BoardGroup, RoundData;
+       Giko, BoardGroup, RoundData, Math, GikoDataModule;
 
 {$R *.DFM}
 
@@ -63,20 +71,20 @@ var
        RoundItem: TRoundItem;
 begin
 {$IF Defined(FRCRND) }
-       Giko.GikoForm.LoginAction.Checked := true; // \93®\8dì\8e\8e\8c±\97p\93r
+       GikoDM.LoginAction.Checked := true; // \93®\8dì\8e\8e\8c±\97p\93r
 {$IFEND}
 
 {$IFNDEF LOOSENUP}     //\8f\84\89ñ\90§\8cÀ\82ð\8aÉ\82ß\82é\82±\82Æ\82É\82µ\82Ä\82½\82ç{$ELSE}\82Ì\95û\82ð\8eg\82¤
-       if not Giko.GikoForm.LoginAction.Checked then begin
+       if not GikoDM.LoginAction.Checked then begin
                if GikoSys.Setting.UserID <> '' then begin
                        msg := '\83\8d\83O\83C\83\93\82µ\82È\82¢\82Æ\8f\84\89ñ\82Í\8fo\97\88\82Ü\82¹\82ñ' + #13#10
                                + '\8d¡\83\8d\83O\83C\83\93\82µ\82Ü\82·\82©';
                        if MsgBox(Handle, msg, '\8am\94F', MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2) <> IDYES then begin
                                Exit;
                        end;
-                       Giko.GikoForm.LoginAction.Execute;
+                       GikoDM.LoginAction.Execute;
                end;
-               if not Giko.GikoForm.LoginAction.Checked then begin
+               if not GikoDM.LoginAction.Checked then begin
                        msg := '\83\8d\83O\83C\83\93\82µ\82È\82¢\82Æ\8f\84\89ñ\82Í\8fo\97\88\82Ü\82¹\82ñ';
                        MsgBox(Handle, msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
                        Exit;
@@ -84,18 +92,18 @@ begin
        end;
 {$ELSE}
        //\8bK\90§\82ð\8aÉ\82ß\82½\82Ù\82¤\82Í\81A\83X\83\8c\88ê\97\97\82Ì\82Ý\8f\84\89ñ\89Â\94\
-       if not Giko.GikoForm.LoginAction.Checked then begin
+       if not GikoDM.LoginAction.Checked then begin
                if GikoSys.Setting.UserID <> '' then begin
                        msg := '\83\8d\83O\83C\83\93\82µ\82È\82¢\82Æ\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82Í\8fo\97\88\82Ü\82¹\82ñ' + #13#10
                                + '\8d¡\83\8d\83O\83C\83\93\82µ\82Ü\82·\82©';
                        if MsgBox(Handle, msg, '\8am\94F', MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2) <> IDYES then begin
                                Exit;
                        end;
-                       Giko.GikoForm.LoginAction.Execute;
+                       GikoDM.LoginAction.Execute;
                end;
        end;
        //\81\9c\82È\82µ\8f\84\89ñ\82Í15\95ª\88È\8fã\82Ì\8aÔ\8au\82ð\95K\97v\82Æ\82·\82é
-       if not Giko.GikoForm.LoginAction.Checked then begin
+       if not GikoDM.LoginAction.Checked then begin
                if CompareTime(GikoForm.LastRoundTime, Now, 30) then begin
                        msg := '\88ê\93x\8f\84\89ñ\82·\82é\82Æ\82R\82O\95ª\8aÔ\8f\84\89ñ\82Í\8fo\97\88\82Ü\82¹\82ñ';
                        MsgBox(Handle, msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
@@ -114,7 +122,7 @@ begin
 
 {$IFNDEF LOOSENUP}
        //\81\9c\82È\82µ\8f\84\89ñ\82Í\82P\93x\82É100\8cÂ\82Ü\82Å\82É\82·\82é
-       if not Giko.GikoForm.LoginAction.Checked then begin
+       if not GikoDM.LoginAction.Checked then begin
                if cnt > 100 then begin
                        msg := '\82P\82O\82O\8cÂ\88È\8fã\82Í\88ê\93x\82É\8f\84\89ñ\82Å\82«\82Ü\82¹\82ñ';
                        MsgBox(Handle, msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
@@ -145,7 +153,7 @@ begin
                if not RoundItem.BoolData then Continue;
 {$IFDEF LOOSENUP}
                //\81\9c\82È\82µ\8f\84\89ñ\82Í\83X\83\8c\83b\83h\82Í\82Å\82«\82È\82¢\82±\82Æ\82É\82·\82é
-               if not Giko.GikoForm.LoginAction.Checked then begin
+               if not GikoDM.LoginAction.Checked then begin
                        msg := '\83\8d\83O\83C\83\93\82µ\82È\82¢\82Æ\83X\83\8c\83b\83h\82Ì\8f\84\89ñ\82Í\82Å\82«\82Ü\82¹\82ñ\81B';
                        MsgBox(Handle, msg, '\83G\83\89\81[', MB_OK or MB_ICONSTOP);
                        break;
@@ -194,6 +202,8 @@ procedure TRoundDialog.FormCreate(Sender: TObject);
 var
        i: Integer;
 begin
+       //\8c»\8dÝ\82Ì\8f\84\89ñ\83f\81[\83^\82ð\83t\83@\83C\83\8b\83A\83E\83g\82·\82é
+       RoundList.SaveRoundFile;
        RoundNameComboBox.Items.Add('\81i\82·\82×\82Ä\81j');
        for i := 0 to RoundList.RoundNameList.Count - 1 do
                RoundNameComboBox.Items.Add(RoundList.RoundNameList[i]);
@@ -260,10 +270,15 @@ end;
 
 procedure TRoundDialog.RoundNameComboBoxChange(Sender: TObject);
 begin
+       //\83J\83\89\83\80\82Ì\83\\81[\83g\8bL\8d\86\83C\83\81\81[\83W\82ð\89ð\8f\9c\82·\82é
+       if FColumnToSort > -1 then
+               RoundListView.Column[FColumnToSort].ImageIndex := -1;
+       FColumnToSort := -1;
        if RoundNameComboBox.ItemIndex = 0 then
                SetRoundItem('')
        else
                SetRoundItem(RoundNameComboBox.Items[RoundNameComboBox.itemIndex]);
+
 end;
 
 procedure TRoundDialog.SetRoundItem(RoundName: string);
@@ -323,7 +338,7 @@ begin
                                TThreadItem(RoundItem.Item).Round := false;
                        end;
                        //RoundList.Delete(RoundItem.URL,RoundItem.RoundType);
-            {
+                       {
                        if RoundItem.RoundType = grtBoard then begin
                                //Board := TBoard( RoundItem.Item );
                                RoundList.Delete(RoundItem.URL,RoundItem.RoundType);
@@ -335,7 +350,7 @@ begin
                                ThreadItem.Round := False;
                                ThreadItem.RoundName := '';
                        end;
-            }
+                       }
                        GikoForm.ListView.Refresh;
                end;
                RoundListView.Selected.Delete;
@@ -344,4 +359,64 @@ begin
        end;
 end;
 
+procedure TRoundDialog.RoundListViewColumnClick(Sender: TObject;
+  Column: TListColumn);
+begin
+       if (Sender is TCustomListView) then 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;
+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;
+(*
+* \83J\83\89\83\80\8fã\82Å\89E\83N\83\8a\83b\83N\82µ\82½\82ç\83\\81[\83g\82ð\89ð\8f\9c\82µ\82Ä\8f\89\8aú\8fó\91Ô\82É\96ß\82·
+*)
+procedure TRoundDialog.RoundListViewColumnRightClick(Sender: TObject;
+  Column: TListColumn; Point: TPoint);
+begin
+       RoundNameComboBox.OnChange(Sender);
+end;
+
 end.