procedure ThreadRangeActionExecute(Sender: TObject);
procedure TabAutoSaveActionExecute(Sender: TObject);
procedure TabAutoLoadActionExecute(Sender: TObject);
+ procedure ListViewColumnDragged(Sender: TObject);
private
{ Private \90é\8c¾ }
//RoundList : TRoundList;
function LoadTabURLs : Boolean;
// \83o\83\93\83h\95\9d\82ð\8dÄ\8cv\8eZ\81E\8dÄ\90Ý\92è\82·\82é
procedure ResetBandInfo( bar : TGikoCoolBar; band : TToolBar );
+ /// ListView \82Ì\83J\83\89\83\80\95\9d\82¨\82æ\82Ñ\88Ê\92u\82Ì\95Û\91¶
+ procedure ActiveListColumnSave;
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure WndProc(var Message: TMessage); override;
// Application.OnDeactivate := nil;
// Self.OnDeactivate := nil;
try
- //column\95\9d
- if GetActiveList is TBBS then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TCategory then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TBoard then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
- end;
+ ActiveListColumnSave;
except
end;
try
function TGikoForm.SetCategoryListItem(ABBS2ch: TBBS): Integer;
var
- ListColumn: TListColumn;
- i, id : Integer;
+ TitleColumn : TListColumn;
+ ListColumn : TListColumn;
+ i, id, idx : Integer;
begin
ListView.Items.BeginUpdate;
try
Screen.Cursor := crHourGlass;
ListView.Columns.Clear;
+ TitleColumn := ListView.Columns.Add;
+ TitleColumn.Caption := GikoBBSColumnCaption[ Ord( gbbscTitle ) ];
+ TitleColumn.Width := GikoSys.Setting.BBSColumnWidth[ Ord( gbbscTitle ) ];
+ idx := 0;
for i := 0 to GikoSys.Setting.BBSColumnOrder.Count - 1 do begin
- id := Ord( GikoSys.Setting.BBSColumnOrder[ i ] );
- if (Integer( Low( TGikoBBSColumnID ) ) <= id) and
- (id <= Integer( High( TGikoBBSColumnID ) )) then begin
- ListColumn := ListView.Columns.Add;
-// ListColumn.Tag := id;
- ListColumn.Tag := i;
- ListColumn.Caption := GikoBBSColumnCaption[ id ];
- ListColumn.Width := GikoSys.Setting.BBSColumnWidth[ id ];
+ if GikoSys.Setting.BBSColumnOrder[ i ] = gbbscTitle then begin
+ TitleColumn.Tag := i;
+ idx := i;
+ end else begin
+ id := Ord( GikoSys.Setting.BBSColumnOrder[ i ] );
+ if (Integer( Low( TGikoBBSColumnID ) ) <= id) and
+ (id <= Integer( High( TGikoBBSColumnID ) )) then begin
+ ListColumn := ListView.Columns.Add;
+ // ListColumn.Tag := id;
+ ListColumn.Tag := i;
+ ListColumn.Caption := GikoBBSColumnCaption[ id ];
+ ListColumn.Width := GikoSys.Setting.BBSColumnWidth[ id ];
+ end;
end;
end;
+ TitleColumn.Index := idx;
ListView.Items.Count := 0;
ListView.Items.Clear;
function TGikoForm.SetBoardListItem(Category: TCategory): Integer;
var
- ListColumn: TListColumn;
- i, id : Integer;
+ TitleColumn : TListColumn;
+ ListColumn : TListColumn;
+ i, id, idx : Integer;
begin
ListView.Items.BeginUpdate;
try
Screen.Cursor := crHourGlass;
ListView.Columns.Clear;
+ TitleColumn := ListView.Columns.Add;
+ TitleColumn.Caption := GikoCategoryColumnCaption[ Ord( gccTitle ) ];
+ TitleColumn.Width := GikoSys.Setting.CategoryColumnWidth[ Ord( gccTitle ) ];
+ idx := 0;
for i := 0 to GikoSys.Setting.CategoryColumnOrder.Count - 1 do begin
- id := Ord( GikoSys.Setting.CategoryColumnOrder[ i ] );
- if (Integer( Low( TGikoCategoryColumnID ) ) <= id) and
- (id <= Integer( High( TGikoCategoryColumnID ) )) then begin
- ListColumn := ListView.Columns.Add;
-// ListColumn.Tag := id;
+ if GikoSys.Setting.CategoryColumnOrder[ i ] = gccTitle then begin
+ TitleColumn.Tag := i;
+ idx := i;
+ end else begin
+ id := Ord( GikoSys.Setting.CategoryColumnOrder[ i ] );
+ if (Integer( Low( TGikoCategoryColumnID ) ) <= id) and
+ (id <= Integer( High( TGikoCategoryColumnID ) )) then begin
+ ListColumn := ListView.Columns.Add;
+// ListColumn.Tag := id;
ListColumn.Tag := i;
- ListColumn.Caption := GikoCategoryColumnCaption[ id ];
- ListColumn.Width := GikoSys.Setting.CategoryColumnWidth[ id ];
+ ListColumn.Caption := GikoCategoryColumnCaption[ id ];
+ ListColumn.Width := GikoSys.Setting.CategoryColumnWidth[ id ];
+ end;
end;
end;
+ TitleColumn.Index := idx;
ListView.Items.Count := 0;
ListView.Items.Clear;
function TGikoForm.SetThreadListItem(Board: TBoard): Integer;
var
- ListColumn: TListColumn;
- i, id : Integer;
+ TitleColumn : TListColumn;
+ ListColumn : TListColumn;
+ i, id, idx : Integer;
begin
ListView.Items.BeginUpdate;
try
if ListView.Columns.Count <> GikoSys.Setting.BoardColumnOrder.Count then
begin
ListView.Columns.Clear;
+ TitleColumn := ListView.Columns.Add;
+ TitleColumn.Caption := GikoBoardColumnCaption[ Ord( gbcTitle ) ];
+ TitleColumn.Width := GikoSys.Setting.BoardColumnWidth[ Ord( gbcTitle ) ];
+ idx := 0;
for i := 0 to GikoSys.Setting.BoardColumnOrder.Count - 1 do begin
- id := Ord( GikoSys.Setting.BoardColumnOrder[ i ] );
- if (Integer( Low( TGikoBoardColumnID ) ) <= id) and
- (id <= Integer( High( TGikoBoardColumnID ) )) then begin
- ListColumn := ListView.Columns.Add;
- ListColumn.Caption := GikoBoardColumnCaption[ id ];
-// ListColumn.Tag := id;
- ListColumn.Tag := i;
- ListColumn.Width := GikoSys.Setting.BoardColumnWidth[ id ];
- ListColumn.Alignment := GikoBoardColumnAlignment[ id ];
+ if GikoSys.Setting.BoardColumnOrder[ i ] = gbcTitle then begin
+ TitleColumn.Tag := i;
+ idx := i;
+ end else begin
+ id := Ord( GikoSys.Setting.BoardColumnOrder[ i ] );
+ if (Integer( Low( TGikoBoardColumnID ) ) <= id) and
+ (id <= Integer( High( TGikoBoardColumnID ) )) then begin
+ ListColumn := ListView.Columns.Add;
+ ListColumn.Caption := GikoBoardColumnCaption[ id ];
+ // ListColumn.Tag := id;
+ ListColumn.Tag := i;
+ ListColumn.Width := GikoSys.Setting.BoardColumnWidth[ id ];
+ ListColumn.Alignment := GikoBoardColumnAlignment[ id ];
+ end;
end;
end;
+ TitleColumn.Index := idx;
end;
ListView.Items.Count := 0;
Self.Caption := CAPTION_NAME;
//Application.Title := CAPTION_NAME;
+// ActiveListColumnSave;
+
if Obj is TBBS then begin
- for i := 0 to ListView.Columns.Count - 1 do
- ListView.Column[i].Width := GikoSys.Setting.BBSColumnWidth[i];
SetCategoryListItem(TBBS(Obj));
end else if Obj is TCategory then begin
- for i := 0 to ListView.Columns.Count - 1 do
- ListView.Column[i].Width := GikoSys.Setting.CategoryColumnWidth[i];
SetBoardListItem(TCategory(Obj));
end else if Obj is TBoard then begin
SetThreadListItem(TBoard(Obj));
end;
end else begin
if Item <> FActiveList then begin
- if GetActiveList is TBBS then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TCategory then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TBoard then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
- end;
+ ActiveListColumnSave;
if (Item is TBBS) or (Item is TCategory) then begin
ListView.Columns.Clear;
Exit;
end;
- if GetActiveList is TBBS then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BBSColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TCategory then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.CategoryColumnWidth[i] := ListView.Column[i].Width;
- end else if GetActiveList is TBoard then begin
- for i := 0 to ListView.Columns.Count - 1 do
- GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
- end;
+ ActiveListColumnSave;
if TObject(Node.Data) is TBBS then begin
SetActiveList(Node.data);
LoadTabURLs;
end;
+procedure TGikoForm.ListViewColumnDragged(Sender: TObject);
+begin
+end;
+
+/// ListView \82Ì\83J\83\89\83\80\95\9d\82¨\82æ\82Ñ\88Ê\92u\82Ì\95Û\91¶
+procedure TGikoForm.ActiveListColumnSave;
+var
+ ActivListObj : TObject;
+ i, id, idx : Integer;
+ BBSOrder : TGikoBBSColumnList;
+ CategoryOrder : TGikoCategoryColumnList;
+ BoardOrder : TGikoBoardColumnList;
+begin
+
+ ActivListObj := ActiveList;
+ if ActivListObj is TBBS then begin
+ //===== \83J\83e\83S\83\8a\83\8a\83X\83g =====
+ BBSOrder := TGikoBBSColumnList.Create;
+ try
+ for i := 0 to ListView.Columns.Count - 1 do begin
+ // \8f\87\8f\98\82Ì\8eæ\93¾
+ idx := ListView.Column[ i ].Tag;
+ id := Ord( GikoSys.Setting.BBSColumnOrder[ idx ] );
+ BBSOrder.Add( TGikoBBSColumnID( id ) );
+ // \95\9d\82Ì\95Û\91¶
+ GikoSys.Setting.BBSColumnWidth[ id ] := ListView.Column[ id ].Width;
+ end;
+ for i := 0 to ListView.Columns.Count - 1 do
+ // \8f\87\8f\98\82Ì\95Û\91¶
+ GikoSys.Setting.BBSColumnOrder[ i ] := BBSOrder[ i ];
+ finally
+ BBSOrder.Free;
+ end;
+ end else if ActivListObj is TCategory then begin
+ //===== \94Â\83\8a\83X\83g =====
+ CategoryOrder := TGikoCategoryColumnList.Create;
+ try
+ for i := 0 to ListView.Columns.Count - 1 do begin
+ // \8f\87\8f\98\82Ì\8eæ\93¾
+ idx := ListView.Column[ i ].Tag;
+ id := Ord( GikoSys.Setting.CategoryColumnOrder[ idx ] );
+ CategoryOrder.Add( TGikoCategoryColumnID( id ) );
+ // \95\9d\82Ì\95Û\91¶
+ GikoSys.Setting.CategoryColumnWidth[ id ] := ListView.Column[ id ].Width;
+ end;
+ for i := 0 to ListView.Columns.Count - 1 do
+ // \8f\87\8f\98\82Ì\95Û\91¶
+ GikoSys.Setting.CategoryColumnOrder[ i ] := CategoryOrder[ i ];
+ finally
+ CategoryOrder.Free;
+ end;
+ end else if ActivListObj is TBoard then begin
+ //===== \83X\83\8c\83\8a\83X\83g =====
+ BoardOrder := TGikoBoardColumnList.Create;
+ try
+ for i := 0 to ListView.Columns.Count - 1 do begin
+ // \8f\87\8f\98\82Ì\8eæ\93¾
+ idx := ListView.Column[ i ].Tag;
+ id := Ord( GikoSys.Setting.BoardColumnOrder[ idx ] );
+ BoardOrder.Add( TGikoBoardColumnID( id ) );
+ // \95\9d\82Ì\95Û\91¶
+ GikoSys.Setting.BoardColumnWidth[i] := ListView.Column[i].Width;
+ end;
+ for i := 0 to ListView.Columns.Count - 1 do
+ // \8f\87\8f\98\82Ì\95Û\91¶
+ GikoSys.Setting.BoardColumnOrder[ i ] := BoardOrder[ i ];
+ finally
+ BoardOrder.Free;
+ end;
+ end;
+
+end;
+
initialization
OleInitialize(nil);
finalization