MSHTML_TLB,
{$IFEND}
IdHTTP, ActiveX, ActnList, ImgList,
- ToolWin, Buttons, {Clipbrd,} {HTTPApp,} YofUtils, IdComponent,
+ ToolWin, Buttons, {Clipbrd,} {HTTPApp,} YofUtils, IdComponent,
ShellAPI, UrlMon, Tabs, IdGlobal, StrUtils,
CommCtrl, IniFiles, Dialogs,
GikoSystem, GikoUtil, Setting, BoardGroup, ThreadControl, ItemDownload,
N21: TMenuItem;
URLC3: TMenuItem;
URLN2: TMenuItem;
- N22: TMenuItem;
N23: TMenuItem;
ListCoolBar: TGikoCoolBar;
ListToolBar: TToolBar;
SelectThreadSave: TMenuItem;
SelectItemSaveForHTML: TAction;
FileSaveAs1: TFileSaveAs;
- SelectItemSaveForHTML1: TMenuItem;
N55: TMenuItem;
+ N66: TMenuItem;
+ dat1: TMenuItem;
+ SelectItemSaveForDat: TAction;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure CabinetPanelHide(Sender: TObject);
procedure SelectItemSaveForHTMLExecute(Sender: TObject);
procedure KidokuActionExecute(Sender: TObject);
procedure MidokuActionExecute(Sender: TObject);
+ procedure SelectItemSaveForDatExecute(Sender: TObject);
private
{ Private \90é\8c¾ }
//RoundList : TRoundList;
// \8ae\8f\8a\82É\82 \82é\83L\83\83\83r\83l\83b\83g\81E BBS \83\81\83j\83\85\81[\82ð\83Z\83b\83g\81^\8dX\90V
procedure SetBBSMenu;
function WebBrowserClick(Sender: TObject): WordBool;
-
+ procedure SkinorCSSFilesCopy(path: string);
protected
procedure CreateParams(var Params: TCreateParams); override;
procedure WndProc(var Message: TMessage); override;
idx: Integer;
ThreadItem: TThreadItem;
Thread: TBrowserRecord;
+ ThreadTitle, ThreadPTitle: string;
+ ThreadScrollTop: Integer;
+ ThreadIsLog, ThreadUnRead, ThreadNewArraical: boolean;
begin
- Thread := inThread;
+ Thread := inThread;
idx := BrowserTab.TabIndex;
if (FActiveContent <> nil) and
(FActiveContent.Thread <> Thread.Thread) and
Thread.Browser := TWebBrowser(FBrowsers[BROWSER_COUNT - 1]);
FBrowsers.Move(BROWSER_COUNT - 1, 0);
end;
- ThreadItem := Thread.Thread;
+ ThreadTitle := Thread.Thread.Title;
+ ThreadPTitle := Thread.Thread.ParentBoard.Title;
+ ThreadScrollTop := Thread.Thread.ScrollTop;
+ ThreadIsLog := Thread.Thread.IsLogFile;
+ ThreadItem := Thread.Thread;
+ ThreadNewArraical := Thread.Thread.NewArrival;
+ ThreadUnRead := Thread.Thread.UnRead;
BBSID := ThreadItem.ParentBoard.BBSID;
FileName := ThreadItem.FileName;
Exit;
end;
end;
- if not ThreadItem.IsLogFile then begin
+ if not ThreadIsLog then begin
Self.Caption := CAPTION_NAME ;
try
s := '<HTML><BODY><CENTER>\82±\82Ì\83X\83\8c\83b\83h\82Í\8eæ\93¾\82µ\82Ä\82¢\82Ü\82¹\82ñ</CENTER></BODY></HTML>';
finally
end;
end else begin
- Self.Caption := CAPTION_NAME + ' - [' + ThreadItem.Title + ']';
+ Self.Caption := CAPTION_NAME + ' - [' + ThreadTitle + ']';
//Thread.Repaint\82Í\81A\83X\83L\83\93\93\99\82Ì\90Ý\92è\82ð\95Ï\8dX\82µ\82½\82Æ\82«\81AThread\82ð\83_\83E\83\93\83\8d\81[\83h\82µ\82½\82Æ\82«
//\90V\8bK\82ÉThread\82ð\8aJ\82¢\82½\82Æ\82«\82É\90^\82É\82È\82Á\82Ä\82¢\82é\81B
if(Thread.Repaint) or (Thread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin
//\91\8a\82µ\82È\82¢\82Æ\88ê\89æ\96Ê\95ª\82µ\82©\95`\89æ\82Å\82«\82Ä\82È\82¢\82Ì\82Å\82»\82ê\88È\8fã\82Ì\83X\83N\83\8d\81[\83\8b\97Ê\82ð\8ew\92è\82µ\82Ä\82à\96³\8cø\82É\82È\82é
//\81@by\82à\82¶\82ã(2004/01/20)
try
- if (Assigned(Thread)) and (Assigned(ThreadItem))then begin
+ //if (Assigned(Thread)) and (Assigned(ThreadItem))then begin
if(Thread <> nil) and (ThreadItem <>nil) then begin
- if ThreadItem.UnRead then
+ if ThreadUnRead then
BrowserMovement('new', Thread)
- else if ThreadItem.ScrollTop <> 0 then begin
+ else if ThreadScrollTop <> 0 then begin
try
- doc.Body.ScrollTop := ThreadItem.ScrollTop;
+ doc.Body.ScrollTop := ThreadScrollTop;
except
on E: Exception do
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
end;
end;
- end;
+ // end;
end else begin
FActiveContent := nil;
BrowserTab.Repaint;
if (Assigned(Thread)) and (Assigned(Thread.Thread)) and (Thread <> nil) and (ThreadItem <>nil) then begin
//FActiveContent := Thread;
- BrowserBoardNameLabel.Caption := ThreadItem.ParentBoard.Title;
+ BrowserBoardNameLabel.Caption := ThreadPTitle;
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
- BrowserNameLabel.Caption := ThreadItem.Title;
+ BrowserNameLabel.Caption := ThreadTitle;
ItemImage.Picture := nil;
- if ThreadItem.IsLogFile then
- if ThreadItem.NewArrival then
+ if ThreadIsLog then
+ if ThreadNewArraical then
ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)
else
ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap)
Item := GetActiveContent;
if Item = nil then Exit;
- if Item.Count >= 1000 then begin
- msg := '\82±\82Ì\83X\83\8c\83b\83h\82Í\83\8c\83X\90\94\82ª\82P\82O\82O\82O\82ð\92´\82¦\82Ä\82¢\82é\82Ì\82Å\8f\91\8d\9e\82Ý\8fo\97\88\82Ü\82¹\82ñ\81B' + #13#10
- + '\90V\83X\83\8c\83b\83h\82ð\92T\82µ\82Ä\82\82¾\82³\82¢\81B';
- if MsgBox(Handle, msg, '\8cx\8d\90', MB_YESNO or MB_ICONEXCLAMATION) <> 7 then begin
- Exit;
- end;
- end;
Editor := TEditorForm.Create(Self);
Editor.SetThreadItem(Item);
Editor.BodyEdit.Text := '>>' + IntToStr(Number) + #13#10;
LPMSep05.Visible := (GetActiveList is TCategory) or (GetActiveList is TBoard);
DeletePMenu.Visible := (GetActiveList is TBoard);
LPMSep06.Visible := (GetActiveList is TCategory) or (GetActiveList is TBoard);
- SelectItemSaveForHTML1.Visible := (GetActiveList is TBoard);
BoardFavoriteAddMenu.Visible := (GetActiveList is TCategory);
ThreadFavoriteAddMenu.Visible := (GetActiveList is TBoard);
end;
procedure TGikoForm.ExportFavoriteFileAccept(Sender: TObject);
begin
+
if FavoriteDM.SaveFavoriteFile( ExportFavoriteFile.Dialog.FileName ) Then begin
ShowMessage('\83t\83@\83C\83\8b\82ð\8fo\97Í\82µ\82Ü\82µ\82½');
end else begin
end;
end;
+procedure TGikoForm.SelectItemSaveForDatExecute(Sender: TObject);
+var
+ List: TList;
+ i: Integer;
+begin
+ List := TList.Create;
+ try
+ SelectListItem(List);
+ FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðdat\82Ì\82Ü\82Ü\95Û\91¶';
+ FileSaveAs1.Dialog.Filter := 'DAT\83t\83@\83C\83\8b(*.dat)|*.dat';
+ for i := 0 to List.Count - 1 do begin
+ if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
+ FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
+ if FileSaveAs1.Execute then begin
+ //\82È\82º\82©\83L\83\83\83\93\83Z\83\8b\82Å\82à\82±\82Á\82¿\82É\93ü\82Á\82Ä\82\82é
+ if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin
+ CopyFile(PChar(TThreadItem(List[i]).FilePath),
+ PChar(FileSaveAs1.Dialog.FileName), true);
+ end;
+ end;
+ end;
+ end;
+ finally
+ List.Free;
+ end;
+
+end;
procedure TGikoForm.SelectItemSaveForHTMLExecute(Sender: TObject);
var
FileSaveAs1.Dialog.Title := '\91I\91ð\83X\83\8c\83b\83h\82ðHTML\89»\82µ\82Ä\95Û\91¶';
FileSaveAs1.Dialog.Filter := 'HTML\83t\83@\83C\83\8b(*.html)|*.html';
for i := 0 to List.Count - 1 do begin
- if TObject(List[i]) is TThreadItem then begin
+ if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).Title + '.html';
if FileSaveAs1.Execute then begin
- html := TStringList.Create;
- title := TThreadItem(List[i]).Title;
- try
- GikoSys.CreateHTML2(html, TThreadItem(List[i]), title);
- html.SaveToFile(FileSaveAs1.Dialog.FileName);
- finally
- html.Free;
+ //\82È\82º\82©\83L\83\83\83\93\83Z\83\8b\82Å\82à\82±\82Á\82¿\82É\93ü\82Á\82Ä\82\82é
+ if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin
+ html := TStringList.Create;
+ title := TThreadItem(List[i]).Title;
+ try
+ GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
+ html.SaveToFile(FileSaveAs1.Dialog.FileName);
+ SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
+ finally
+ html.Free;
+ end;
end;
end;
end;
List.Free;
end;
end;
+procedure TGikoForm.SkinorCSSFilesCopy(path: string);
+var
+ tmp, tmpD, tmpF: string;
+ current: string;
+ dirs: TStringList;
+ files: TStringList;
+ i, j: Integer;
+begin
+ if GikoSys.Setting.UseSkin then begin
+ current := ExtractFilePath(GikoSys.GetSkinDir);
+ tmp := GikoSys.Setting.CSSFileName;
+ end else if GikoSys.Setting.UseCSS then begin
+ current := ExtractFilePath(GikoSys.GetStyleSheetDir);
+ tmp := ExtractFilePath(GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName);
+ end;
+ dirs := TStringList.Create;
+ try
+ dirs.Add(tmp);
+ if tmp <> current then begin
+ GikoSys.GetDirectoryList(current, '*.*', dirs, true);
+ for i := 0 to dirs.Count - 1 do begin
+ files := TStringList.Create;
+ try
+ gikoSys.GetFileList(dirs[i], '*.*', files, true);
+ tmpD := CustomStringReplace(dirs[i], GikoSys.GetConfigDir, path);
+ if (AnsiPos(dirs[i], tmp) <> 0) and not (DirectoryExists(tmpD)) then
+ ForceDirectories(tmpD);
+
+ if(dirs[i] = tmp) and (dirs[i] <> current) then begin
+ for j := 0 to files.Count - 1 do begin
+ tmpF := CustomStringReplace(files[j], GikoSys.GetConfigDir, path);
+ if not FileExists(tmpF) then begin
+ CopyFile(PChar(files[j]), PChar(tmpF),True);
+ end;
+ end;
+ end;
+ finally
+ files.Free;
+ end;
+ end;
+ end else begin
+ tmpD := CustomStringReplace(dirs[0], GikoSys.GetConfigDir, path);
+ if not DirectoryExists(tmpD) then
+ ForceDirectories(tmpD);
+ tmpF := CustomStringReplace(GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName
+ , GikoSys.GetConfigDir, path);
+ if not FileExists(tmpF) then begin
+ CopyFile(PChar(GikoSys.GetStyleSheetDir + GikoSys.Setting.CSSFileName)
+ , PChar(tmpF), True);
+ end;
+ end;
+ finally
+ dirs.Free;
+ end;
+
+end;
procedure TGikoForm.KidokuActionExecute(Sender: TObject);
var
List: TList;
end;
end;
if TreeView.Visible then
- TreeView.Refresh;
+ TreeView.Refresh;
finally
List.Free;
end;