| 211 |
WikiFAQWebPageAction: TAction; |
WikiFAQWebPageAction: TAction; |
| 212 |
ToobarImageList: TImageList; |
ToobarImageList: TImageList; |
| 213 |
SaveDialog: TSaveDialog; |
SaveDialog: TSaveDialog; |
| 214 |
|
ThreadSizeCalcForFileAction: TAction; |
| 215 |
procedure EditNGActionExecute(Sender: TObject); |
procedure EditNGActionExecute(Sender: TObject); |
| 216 |
procedure ReloadActionExecute(Sender: TObject); |
procedure ReloadActionExecute(Sender: TObject); |
| 217 |
procedure GoFowardActionExecute(Sender: TObject); |
procedure GoFowardActionExecute(Sender: TObject); |
| 393 |
procedure MidokuActionExecute(Sender: TObject); |
procedure MidokuActionExecute(Sender: TObject); |
| 394 |
procedure AllSelectActionExecute(Sender: TObject); |
procedure AllSelectActionExecute(Sender: TObject); |
| 395 |
procedure AllSelectActionUpdate(Sender: TObject); |
procedure AllSelectActionUpdate(Sender: TObject); |
| 396 |
|
procedure ThreadSizeCalcForFileActionExecute(Sender: TObject); |
| 397 |
private |
private |
| 398 |
{ Private 宣言 } |
{ Private 宣言 } |
| 399 |
procedure ClearResFilter; |
procedure ClearResFilter; |
| 405 |
procedure SetThreadReadProperty(read: Boolean); |
procedure SetThreadReadProperty(read: Boolean); |
| 406 |
procedure SelectThreadSaveToFile(dat: Boolean); |
procedure SelectThreadSaveToFile(dat: Boolean); |
| 407 |
function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean; |
function GetSortProperties(List: TObject;var vSortOrder: Boolean): Boolean; |
| 408 |
|
procedure RecalcThreadSize(limit : Integer); |
| 409 |
public |
public |
| 410 |
{ Public 宣言 } |
{ Public 宣言 } |
| 411 |
procedure RepaintStatusBar; |
procedure RepaintStatusBar; |
| 3705 |
AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0; |
AllSelectAction.Enabled := GikoForm.ListView.SelCount > 0; |
| 3706 |
end; |
end; |
| 3707 |
////////////////////////////////編集までおしまい///////////////////// |
////////////////////////////////編集までおしまい///////////////////// |
| 3708 |
|
//! スレッドのサイズを再計算する |
| 3709 |
|
procedure TGikoDM.ThreadSizeCalcForFileActionExecute(Sender: TObject); |
| 3710 |
|
const |
| 3711 |
|
RECALC_MES : String = 'スレッドの容量をファイルから再計算します。'#13#10 + |
| 3712 |
|
'この操作中、ギコナビの他の操作をするとデータが破壊される恐れがあります。' + |
| 3713 |
|
'またこの操作は、非常に時間がかかる場合がありますが、よろしいですか?'; |
| 3714 |
|
RECALC_TITLE : String = 'スレッドの容量をファイルから再計算'; |
| 3715 |
|
LIMIT_SIZE = 1024; |
| 3716 |
|
var |
| 3717 |
|
limitSize : Integer; |
| 3718 |
|
limitStr : String; |
| 3719 |
|
begin |
| 3720 |
|
{ まず、時間がかかることを警告するメッセージを出力 |
| 3721 |
|
再計算するスレッドのサイズの閾値(デフォルト1024B)を確認 |
| 3722 |
|
プラグインを利用しないところで全てのログ有りスレッドを検索 |
| 3723 |
|
閾値以下のサイズの場合、DATのファイルサイズと比較、ずれていれば、 |
| 3724 |
|
DATのファイルサイズで更新する |
| 3725 |
|
} |
| 3726 |
|
if MsgBox(GikoForm.Handle, RECALC_MES, |
| 3727 |
|
RECALC_TITLE, MB_YESNO or MB_ICONWARNING) = ID_YES then begin |
| 3728 |
|
//閾値の確認 |
| 3729 |
|
limitSize := LIMIT_SIZE; |
| 3730 |
|
limitStr := IntToStr(limitSize); |
| 3731 |
|
if InputQuery('閾値入力', '指定した数値以下の容量のスレッドのみ再計算します', limitStr) then begin |
| 3732 |
|
limitSize := StrToInt(MojuUtils.ZenToHan(limitStr)); |
| 3733 |
|
if (limitSize < 0) then begin |
| 3734 |
|
ShowMessage('閾値に負は指定できません!'); |
| 3735 |
|
ThreadSizeCalcForFileActionExecute(nil); |
| 3736 |
|
end else begin |
| 3737 |
|
RecalcThreadSize(limitSize); |
| 3738 |
|
end; |
| 3739 |
|
end; |
| 3740 |
|
end; |
| 3741 |
|
end; |
| 3742 |
|
//! limitよりもサイズの小さいスレッドの容量をDATファイルから計算 |
| 3743 |
|
procedure TGikoDM.RecalcThreadSize(limit : Integer); |
| 3744 |
|
var |
| 3745 |
|
i, j, tmpSize : Integer; |
| 3746 |
|
Obj : TObject; |
| 3747 |
|
Board : TBoard; |
| 3748 |
|
Thread: TThreadItem; |
| 3749 |
|
dat : TStringList; |
| 3750 |
|
begin |
| 3751 |
|
// 再計算スタート プラグインを利用しないところを全部見る! |
| 3752 |
|
GikoForm.ScreenCursor := crHourGlass; |
| 3753 |
|
try |
| 3754 |
|
GikoForm.ProgressBar.Max := BoardGroups[0].Count; |
| 3755 |
|
for i := 0 to BoardGroups[0].Count - 1 do begin |
| 3756 |
|
Obj := BoardGroups[0].Objects[i]; |
| 3757 |
|
if (Obj <> nil) then begin |
| 3758 |
|
Board := TBoard(Obj); |
| 3759 |
|
if not Board.IsThreadDatRead then begin |
| 3760 |
|
GikoSys.ReadSubjectFile(Board); |
| 3761 |
|
end; |
| 3762 |
|
for j := 0 to Board.Count - 1 do begin |
| 3763 |
|
Thread := Board.Items[j]; |
| 3764 |
|
if (Thread <> nil) and (Thread.IsLogFile) |
| 3765 |
|
and (Thread.Size <= limit) then begin |
| 3766 |
|
dat := TStringList.Create; |
| 3767 |
|
try |
| 3768 |
|
tmpSize := Thread.Size; |
| 3769 |
|
try |
| 3770 |
|
dat.LoadFromFile(Thread.GetThreadFileName); |
| 3771 |
|
tmpSize := Length(dat.Text); |
| 3772 |
|
tmpSize := tmpSize - dat.Count; |
| 3773 |
|
except |
| 3774 |
|
end; |
| 3775 |
|
Thread.Size := tmpSize; |
| 3776 |
|
finally |
| 3777 |
|
dat.Free; |
| 3778 |
|
end; |
| 3779 |
|
end; |
| 3780 |
|
end; |
| 3781 |
|
end; |
| 3782 |
|
GikoForm.ProgressBar.StepBy(1); |
| 3783 |
|
end; |
| 3784 |
|
finally |
| 3785 |
|
GikoForm.ScreenCursor := crDefault; |
| 3786 |
|
end; |
| 3787 |
|
GikoForm.ProgressBar.Position := 0; |
| 3788 |
|
ShowMessage('計算終了しました。'); |
| 3789 |
|
end; |
| 3790 |
|
|
| 3791 |
end. |
end. |
| 3792 |
|
|