object GikoForm: TGikoForm
- Left = 153
- Top = 68
+ Left = 363
+ Top = 92
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
AutoScroll = False
N63: TMenuItem;
N64: TMenuItem;
dummy1: TMenuItem;
- TreeSelectLogDeletePopupMenu: TMenuItem;
+ TreeSelectLogDeletePopupMenu: TMenuItem;
N65: TMenuItem;
BBSSelectPopupMenu: TPopupMenu;
PlugInMenu: TMenuItem;
ResRangeKokoPMenuItem: TMenuItem;
ResRangeNewPMenuItem: TMenuItem;
ResRangeAllPMenuItem: TMenuItem;
- BrowsBoradHeadAction1: TMenuItem;
+ BrowsBoradHeadAction1: TMenuItem;
ThreadRangePopupMenu: TPopupMenu;
A15: TMenuItem;
L8: TMenuItem;
N73: TMenuItem;
SelectComboBoxPanel: TPanel;
SelectComboBoxSplitter: TImage;
- ToolButton1: TToolButton;
+ ToolButton1: TToolButton;
N74: TMenuItem;
WikiFAQ: TMenuItem;
GikoApplicationEvents: TApplicationEvents;
Shift: TShiftState);
procedure FavoriteTreeViewEditing(Sender: TObject; Node: TTreeNode;
var AllowEdit: Boolean);
- procedure CabinetCloseSpeedButtonClick(Sender: TObject);
+ procedure CabinetCloseSpeedButtonClick(Sender: TObject);
procedure FavoriteArrangeToolButtonClick(Sender: TObject);
procedure GikoApplicationEventsMessage(var Msg: tagMSG;
var Handled: Boolean);
Shift: TShiftState; X, Y: Integer);
private
{ Private \90é\8c¾ }
- FSortIndex: Integer;
- FSortOrder: Boolean;
FEnabledCloseButton: Boolean;
FClickNode: TTreeNode;
FHttpState: Boolean;
property ToolBarSettingSender : TToolBarSettingSenderType
read FToolBarSettingSender write FToolBarSettingSender;
property ScreenCursor : TCursor read GetScreenCursor write SetScreenCursor;
- property SortIndex: Integer read FSortIndex write FSortIndex;
- property SortOrder: Boolean read FSortOrder write FSortOrder;
property ActiveBBS : TBBS read FActiveBBS write FActiveBBS;
property WorkCount: Integer read FWorkCount write FWorkCount;
procedure SetContent(inThread: TBrowserRecord);
var
id, idx : Integer;
orderList : TList;
+ vSortIndex : Integer;
+ vSortOrder : Boolean;
begin
idx := TListViewUtils.ActiveListTrueColumn( Column ).Tag;
-
- if TObject( FActiveList ) is TBBS then
- orderList := GikoSys.Setting.BBSColumnOrder
- else if TObject( FActiveList ) is TCategory then
- orderList := GikoSys.Setting.CategoryColumnOrder
- else if TObject( FActiveList ) is TBoard then
- orderList := GikoSys.Setting.BoardColumnOrder
- else
+ if TObject( FActiveList ) is TBBS then begin
+ orderList := GikoSys.Setting.BBSColumnOrder;
+ vSortIndex := GikoSys.Setting.BBSSortIndex;
+ vSortOrder := GikoSys.Setting.BBSSortOrder;
+ end else if TObject( FActiveList ) is TCategory then begin
+ orderList := GikoSys.Setting.CategoryColumnOrder;
+ vSortIndex := GikoSys.Setting.CategorySortIndex;
+ vSortOrder := GikoSys.Setting.CategorySortOrder;
+ end else if TObject( FActiveList ) is TBoard then begin
+ orderList := GikoSys.Setting.BoardColumnOrder;
+ vSortIndex := GikoSys.Setting.BoardSortIndex;
+ vSortOrder := GikoSys.Setting.BoardSortOrder;
+ end else
Exit;
id := Integer( orderList[ idx ] );
- if FSortIndex = id then
- FSortOrder := not FSortOrder
+
+ if vSortIndex = id then
+ vSortOrder := not vSortOrder
else begin
- FSortOrder := id = 0;
+ vSortOrder := True;
end;
-
- TListViewUtils.ListViewSort(Sender, ListView, Column, GikoDM.ListNumberVisibleAction.Checked, FSortOrder, FSortIndex );
+{$IFDEF DEBUG}
+ If vSortOrder then begin
+ Writeln('True : id:' + IntToStr(id) + ' SI:' + IntToStr(vSortIndex));
+ end else begin
+ Writeln('False : id:' + IntToStr(id) + ' SI:' + IntToStr(vSortIndex));
+ end;
+{$ENDIF}
+ TListViewUtils.ListViewSort(Sender, ListView, Column, GikoDM.ListNumberVisibleAction.Checked, vSortOrder);
end;
procedure TGikoForm.MenuToolBarCustomDrawButton(Sender: TToolBar;
Screen.Cursor := crHourGlass;
try
if Obj is TBBS then begin
- TListViewUtils.SetCategoryListItem(TBBS(obj), ListView, GikoDM.ListNumberVisibleAction.Checked,
- FSortIndex, FSortOrder);
+ TListViewUtils.SetCategoryListItem(TBBS(obj), ListView, GikoDM.ListNumberVisibleAction.Checked);
end else if Obj is TCategory then begin
- TListViewUtils.SetBoardListItem(TCategory(Obj), ListView, GikoDM.ListNumberVisibleAction.Checked,
- FSortIndex, FSortOrder);
+ TListViewUtils.SetBoardListItem(TCategory(Obj), ListView, GikoDM.ListNumberVisibleAction.Checked);
end else if Obj is TBoard then begin
- TListViewUtils.SetThreadListItem(TBoard(Obj), ListView, GikoDM.ListNumberVisibleAction.Checked,
- FSortIndex, FSortOrder);
+ TListViewUtils.SetThreadListItem(TBoard(Obj), ListView, GikoDM.ListNumberVisibleAction.Checked);
end;
finally
Screen.Cursor := crDefault;
procedure SetThreadAreaVertical(gls : TGikoListState);
procedure SetThreadReadProperty(read: Boolean);
procedure SelectThreadSaveToFile(dat: Boolean);
+ function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean;
public
{ Public \90é\8c¾ }
procedure RepaintStatusBar;
end;
// *************************************************************************
+//! \83X\83\8c\88ê\97\97\82Ì\95\\8e¦\82µ\82Ä\82¢\82é\93à\97e\82É\82µ\82½\82ª\82Á\82Ä\81A\83\\81[\83g\83J\83\89\83\80\82Ì\88Ê\92u\82Æ\95û\8cü\82ð\8eæ\93¾\82·\82é
+// *************************************************************************
+function TGikoDM.GetSortProperties(List: TObject;
+ var vSortOrder: Boolean): Boolean;
+begin
+ Result := True;
+ if (List <> nil) then begin
+ if (List is TBBS) then begin
+ vSortOrder := GikoSys.Setting.BBSSortOrder;
+ end else if (List is TCategory) then begin
+ vSortOrder := GikoSys.Setting.CategorySortOrder;
+ end else if (List is TBoard) then begin
+ vSortOrder := GikoSys.Setting.BoardSortOrder;
+ end else begin
+ Result := False;
+ end;
+ end else begin
+ Result := False;
+ end;
+end;
+// *************************************************************************
//! \8c»\8dÝ\82Ì\83J\83\89\83\80\82ð\83\\81[\83g\82·\82é
// *************************************************************************
procedure TGikoDM.SortActiveColumnActionExecute(Sender: TObject);
var
i : Integer;
so : boolean;
- si : Integer;
begin
- for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
- if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
- (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
- GikoForm.SortOrder := not GikoForm.SortOrder;
- so := GikoForm.SortOrder;
- si := GikoForm.SortIndex;
- TListViewUtils.ListViewSort(nil, GikoForm.ListView,
- GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
- so, si );
- GikoForm.SortIndex := si;
- GikoForm.SortOrder := so;
- break;
+ if GetSortProperties(GikoForm.GetActiveList, so) then begin
+ for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
+ if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
+ (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT2) then begin
+ so := not so;
+ TListViewUtils.ListViewSort(nil, GikoForm.ListView,
+ GikoForm.ListView.Column[ i ], ListNumberVisibleAction.Checked,
+ so);
+ break;
+ end;
end;
end;
end;
procedure TGikoDM.SortNextColumnActionExecute(Sender: TObject);
var
i, id : Integer;
- so : boolean;
- si : Integer;
begin
for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
id := i + 1;
if id > GikoForm.ListView.Columns.Count - 1 then
id := 0;
- GikoForm.SortOrder := id = 0;
- so := GikoForm.SortOrder;
- si := GikoForm.SortIndex;
TListViewUtils.ListViewSort( nil, GikoForm.ListView,
GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
- so, si );
- GikoForm.SortIndex := si;
- GikoForm.SortOrder := so;
+ True);
break;
end;
end;
procedure TGikoDM.SortPrevColumnActionExecute(Sender: TObject);
var
i, id : Integer;
- so : boolean;
- si : Integer;
begin
for i := 0 to GikoForm.ListView.Columns.Count - 1 do begin
if (GikoForm.ListView.Column[ i ].ImageIndex = ITEM_ICON_SORT1) or
id := i - 1;
if id < 0 then
id := GikoForm.ListView.Columns.Count - 1;
- GikoForm.SortOrder := id = 0;
- so := GikoForm.SortOrder;
- si := GikoForm.SortIndex;
TListViewUtils.ListViewSort( nil, GikoForm.ListView,
GikoForm.ListView.Column[ id ], ListNumberVisibleAction.Checked,
- so, si );
- GikoForm.SortIndex := si;
- GikoForm.SortOrder := so;
+ True);
break;
end;
end;
{Public \90é\8c¾}
class procedure SetBoardTreeNode(inBBS : TBBS; treeView: TTreeView);
class function SetCategoryListItem(ABBS2ch: TBBS; ListView: TListView;
- NumberVisible: Boolean; var vSortIndex: Integer; var vSortOrder: Boolean): Integer;
+ NumberVisible: Boolean): Integer;
class procedure ListViewSort(Sender: TObject; ListView: TListView; Column: TListColumn;
- NumberVisible: Boolean; var vSortOrder: Boolean; var vSortIndex: Integer);
+ NumberVisible: Boolean; vSortOrder: Boolean);
class function ActiveListTrueColumn( column : TListColumn ) : TListColumn;
class function SetBoardListItem(Category: TCategory; ListView: TListView;
- NumberVisible: Boolean; var vSortIndex: Integer; var vSortOrder: Boolean): Integer;
+ NumberVisible: Boolean): Integer;
class function SetThreadListItem(Board: TBoard; ListView: TListView;
- NumberVisible: Boolean; var vSortIndex: Integer; var vSortOrder: Boolean): Integer;
+ NumberVisible: Boolean): Integer;
class procedure ListViewData(Sender: TObject; Item: TListItem);
end;
class function TListViewUtils.SetCategoryListItem(
ABBS2ch: TBBS;
ListView: TListView;
- NumberVisible: Boolean;
- var vSortIndex: Integer;
- var vSortOrder: Boolean
+ NumberVisible: Boolean
): Integer;
var
TitleColumn : TListColumn;
GikoForm.FolderImage.Picture := nil;
GikoForm.ItemIcon16.GetBitmap(1, GikoForm.FolderImage.Picture.Bitmap);
- vSortIndex := GikoSys.Setting.BBSSortIndex;
- vSortOrder := GikoSys.Setting.BBSSortOrder;
for i := ListView.Columns.Count - 1 downto 0 do begin
- idx := ListView.Column[ i ].Tag;
- if vSortIndex = Ord( GikoSys.Setting.BBSColumnOrder[ idx ] ) then
- ListViewSort( nil, ListView, ListView.Column[ i ], NumberVisible, vSortOrder, vSortIndex );
+ if (GikoSys.Setting.BBSSortIndex
+ = Integer(GikoSys.Setting.BBSColumnOrder[ ListView.Column[ i ].Tag ])) then begin
+ ListViewSort( nil, ListView, ListView.Column[ i ],
+ NumberVisible, GikoSys.Setting.BBSSortOrder);
+ Break;
+ end;
end;
Result := ABBS2ch.Count;
ListView: TListView;
Column: TListColumn;
NumberVisible: Boolean;
- var vSortOrder: Boolean;
- var vSortIndex: Integer
+ vSortOrder: Boolean
);
var
- i, id, idx : Integer;
+ i, idx : Integer;
orderList : TList;
wkBBS: TBBS;
wkCategory: TCategory;
for i := 0 to ListView.Columns.Count - 1 do begin
ListView.Column[i].ImageIndex := -1;
end;
-
- if SortOrder then
+ if vSortOrder then
ListView.Column[ idx ].ImageIndex := ITEM_ICON_SORT1
else
ListView.Column[ idx ].ImageIndex := ITEM_ICON_SORT2;
+
Sort.SortNoFlag := NumberVisible;
- //if TObject(TreeView.Selected.Data) is TBBS then begin
if TObject( GikoForm.ActiveList ) is TBBS then begin
- //wkBBS := TBBS(TreeView.Selected.Data);
wkBBS := TBBS( GikoForm.ActiveList );
orderList := GikoSys.Setting.BBSColumnOrder;
- id := Integer( orderList[ idx ] );
Sort.SortOrder := vSortOrder;
- Sort.SortIndex := id;
- GikoSys.Setting.BBSSortIndex := id;
- GikoSys.Setting.BBSSortOrder := vSortOrder;
+ Sort.SortIndex := Integer( orderList[ idx ] );
+ GikoSys.Setting.BBSSortIndex := Sort.SortIndex;
+ GikoSys.Setting.BBSSortOrder := Sort.SortOrder;
wkBBS.Sort(Sort.CategorySortProc);
- //end else if TObject(TreeView.Selected.Data) is TCategory then begin
end else if TObject( GikoForm.ActiveList ) is TCategory then begin
- //wkCategory := TCategory(TreeView.Selected.Data);
wkCategory := TCategory( GikoForm.ActiveList );
orderList := GikoSys.Setting.CategoryColumnOrder;
- id := Integer( orderList[ idx ] );
Sort.SortOrder := vSortOrder;
- Sort.SortIndex := id;
- GikoSys.Setting.CategorySortIndex := id;
- GikoSys.Setting.CategorySortOrder := vSortOrder;
+ Sort.SortIndex := Integer( orderList[ idx ] );
+ GikoSys.Setting.CategorySortIndex := Sort.SortIndex;
+ GikoSys.Setting.CategorySortOrder := Sort.SortOrder;
wkCategory.CustomSort(BoardSortProc);
- //end else if TObject(TreeView.Selected.Data) is TBoard then begin
end else if TObject( GikoForm.ActiveList ) is TBoard then begin
- //wkBoard := TBoard(TreeView.Selected.Data);
wkBoard := TBoard( GikoForm.ActiveList );
orderList := GikoSys.Setting.BoardColumnOrder;
- id := Integer( orderList[ idx ] );
Sort.SortOrder := vSortOrder;
- Sort.SortIndex := id;
- GikoSys.Setting.BoardSortIndex := id;
- GikoSys.Setting.BoardSortOrder := vSortOrder;
+ Sort.SortIndex := Integer( orderList[ idx ] );
+ GikoSys.Setting.BoardSortIndex := Sort.SortIndex;
+ GikoSys.Setting.BoardSortOrder := Sort.SortOrder;
wkBoard.CustomSort(ThreadItemSortProc);
- end else begin
- id := 0;
end;
ListView.Refresh;
- vSortIndex := id;
end;
{!
\90³\82µ\82¢\83J\83\89\83\80\82ª\93n\82³\82ê\82È\82¢\82½\82ß\81A\90³\82µ\82¢\83J\83\89\83\80\82É\95Ï\8a·\82µ\82Ü\82·\81B
}
class function TListViewUtils.ActiveListTrueColumn( column : TListColumn ) : TListColumn;
-{*
-var
- i, idx : Integer;
- orderList : TList;
-*}
begin
-
// \90³\82µ\82\95Ï\8a·\82·\82é\95û\96@\82ª\95ª\82©\82ç\82È\82¢\82Ì\82Å\95Û\97¯
Result := column;
Exit;
-{*
- Result := column;
-
- if TObject( FActiveList ) is TBBS then
- orderList := GikoSys.Setting.BBSColumnOrder
- else if TObject( FActiveList ) is TCategory then
- orderList := GikoSys.Setting.CategoryColumnOrder
- else if TObject( FActiveList ) is TBoard then
- orderList := GikoSys.Setting.BoardColumnOrder
- else
- Exit;
-
- idx := column.Tag;
-
- for i := 0 to ListView.Columns.Count - 1 do begin
- if Integer( orderList[ ListView.Column[ i ].Tag ] ) = 0 then begin
- if idx = 0 then
- Result := ListView.Column[ i ]
- else if idx <= i then
- Result := ListView.Column[ idx - 1 ];
- Exit;
- end;
- end;
-*}
-
end;
//ListView\82ÉBoardItem\82ð\90Ý\92è\82·\82é
class function TListViewUtils.SetBoardListItem(
Category: TCategory;
ListView: TListView;
- NumberVisible: Boolean;
- var vSortIndex: Integer;
- var vSortOrder: Boolean
+ NumberVisible: Boolean
): Integer;
var
TitleColumn : TListColumn;
GikoForm.FolderImage.Picture := nil;
GikoForm.ItemIcon16.GetBitmap(3, GikoForm.FolderImage.Picture.Bitmap);
- vSortIndex := GikoSys.Setting.CategorySortIndex;
- vSortOrder := GikoSys.Setting.CategorySortOrder;
for i := ListView.Columns.Count - 1 downto 0 do begin
- idx := ListView.Column[ i ].Tag;
- if vSortIndex = Ord( GikoSys.Setting.CategoryColumnOrder[ idx ] ) then
- ListViewSort( nil, ListView, ListView.Column[ i ], NumberVisible, vSortOrder, vSortIndex );
+ if (GikoSys.Setting.CategorySortIndex =
+ Integer( GikoSys.Setting.CategoryColumnOrder[ ListView.Columns[i].Tag ] )) then begin
+ ListViewSort( nil, ListView, ListView.Column[ i ],
+ NumberVisible, GikoSys.Setting.CategorySortOrder);
+ Break;
+ end;
end;
Result := Category.Count;
class function TListViewUtils.SetThreadListItem(
Board: TBoard;
ListView: TListView;
- NumberVisible: Boolean;
- var vSortIndex: Integer;
- var vSortOrder: Boolean
+ NumberVisible: Boolean
): Integer;
var
TitleColumn : TListColumn;
GikoForm.FolderImage.Picture := nil;
GikoForm.ItemIcon16.GetBitmap(5, GikoForm.FolderImage.Picture.Bitmap);
- vSortIndex := GikoSys.Setting.BoardSortIndex;
- vSortOrder := GikoSys.Setting.BoardSortOrder;
for i := ListView.Columns.Count - 1 downto 0 do begin
- idx := ListView.Column[ i ].Tag;
- if vSortIndex = Ord( GikoSys.Setting.BoardColumnOrder[ idx ] ) then
- ListViewSort( nil, ListView, ListView.Column[ i ], NumberVisible, vSortOrder, vSortIndex );
+ if (GikoSys.Setting.BoardSortIndex
+ = Integer( GikoSys.Setting.BoardColumnOrder[ ListView.Columns[ i ].Tag ] )) then begin
+ ListViewSort( nil, ListView, ListView.Column[ i ],
+ NumberVisible, GikoSys.Setting.BoardSortOrder);
+ Break;
+ end;
end;
Result := Board.Count;