Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.344 by h677, Tue Jun 22 11:59:05 2004 UTC revision 1.345 by h677, Tue Jun 22 15:41:32 2004 UTC
# Line 547  type Line 547  type
547      N66: TMenuItem;      N66: TMenuItem;
548      dat1: TMenuItem;      dat1: TMenuItem;
549      SelectItemSaveForDat: TAction;      SelectItemSaveForDat: TAction;
550        LogFolderOpenAction: TAction;
551        OpenLogFolder: TMenuItem;
552                                  procedure FormCreate(Sender: TObject);                                  procedure FormCreate(Sender: TObject);
553                  procedure FormDestroy(Sender: TObject);                  procedure FormDestroy(Sender: TObject);
554                  procedure CabinetPanelHide(Sender: TObject);                  procedure CabinetPanelHide(Sender: TObject);
# Line 879  type Line 881  type
881      procedure KidokuActionExecute(Sender: TObject);      procedure KidokuActionExecute(Sender: TObject);
882      procedure MidokuActionExecute(Sender: TObject);      procedure MidokuActionExecute(Sender: TObject);
883      procedure SelectItemSaveForDatExecute(Sender: TObject);      procedure SelectItemSaveForDatExecute(Sender: TObject);
884        procedure BrowserPanelCanResize(Sender: TObject; var NewWidth,
885          NewHeight: Integer; var Resize: Boolean);
886        procedure LogFolderOpenActionExecute(Sender: TObject);
887        procedure LogFolderOpenActionUpdate(Sender: TObject);
888          private          private
889                  { Private 宣言 }                  { Private 宣言 }
890          //RoundList : TRoundList;          //RoundList : TRoundList;
# Line 1233  begin Line 1239  begin
1239          Self.OnDeactivate := AppFormDeactivate;          Self.OnDeactivate := AppFormDeactivate;
1240          Application.HookMainWindow(Hook);          Application.HookMainWindow(Hook);
1241          Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ          Application.OnMessage := HandleAppMessage; //なんか無くても大丈夫になった by もじゅ
1242            Self.DoubleBuffered := true;
1243          FTreeType := gttNone;          FTreeType := gttNone;
1244    
1245          FSearchDialog := nil;          FSearchDialog := nil;
# Line 1242  begin Line 1248  begin
1248          BrowserNullTab.Browser.Navigate(BLANK_HTML);          BrowserNullTab.Browser.Navigate(BLANK_HTML);
1249          FBrowsers := TList.Create;          FBrowsers := TList.Create;
1250          for i := 0 to BROWSER_COUNT -1 do begin          for i := 0 to BROWSER_COUNT -1 do begin
1251                  newBrowser := TWebBrowser.Create(nil);                  FBrowsers.Add(TWebBrowser.Create(nil));
1252                    newBrowser := FBrowsers[FBrowsers.Count - 1];
1253                  TOleControl(newBrowser).Parent := BrowserPanel;                  TOleControl(newBrowser).Parent := BrowserPanel;
1254                  TOleControl(newBrowser).Align := alClient;                  newBrowser.Align := alNone;
1255            TOleControl(newBrowser).DoubleBuffered := true;
1256                  newBrowser.OnDocumentComplete   := BrowserDocumentComplete;                  newBrowser.OnDocumentComplete   := BrowserDocumentComplete;
1257                  newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;                  newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;
1258                  newBrowser.OnEnter                              := BrowserEnter;                  newBrowser.OnEnter                              := BrowserEnter;
# Line 1253  begin Line 1261  begin
1261                  //newBrowser.OnTitleChange              := BrowserTitleChange;                  //newBrowser.OnTitleChange              := BrowserTitleChange;
1262                  newBrowser.Navigate(BLANK_HTML);                  newBrowser.Navigate(BLANK_HTML);
1263                  ShowWindow(newBrowser.Handle, SW_HIDE);                  ShowWindow(newBrowser.Handle, SW_HIDE);
1264                  FBrowsers.Add(newBrowser);  
1265          end;          end;
1266          BrowserNullTab.Browser.BringToFront;          BrowserNullTab.Browser.BringToFront;
1267          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);          ShowWindow(BrowserNullTab.Browser.Handle, SW_SHOW);
# Line 3366  var Line 3374  var
3374          FileName: string;          FileName: string;
3375          sTitle: string;          sTitle: string;
3376  //      HtmlName: string;  //      HtmlName: string;
3377          doc: Variant;          doc:  Variant;
3378          s: string;          s: string;
3379  //      OldCursor: TCursor;  //      OldCursor: TCursor;
3380          i: Integer;          i: Integer;
# Line 4899  begin Line 4907  begin
4907  //      Mouse.CursorPos := BrowserSizeButton.ClientToScreen(Point(  //      Mouse.CursorPos := BrowserSizeButton.ClientToScreen(Point(
4908  //                                                                                              System.Round(BrowserToolBar.ButtonWidth div 2),  //                                                                                              System.Round(BrowserToolBar.ButtonWidth div 2),
4909  //                                                                                              System.Round(BrowserToolBar.ButtonHeight div 2)));  //                                                                                              System.Round(BrowserToolBar.ButtonHeight div 2)));
4910          BrowserTab.OnChange(nil);          //BrowserTab.OnChange(nil);
4911  end;  end;
4912    
4913  procedure TGikoForm.BrowserMinActionExecute(Sender: TObject);  procedure TGikoForm.BrowserMinActionExecute(Sender: TObject);
4914  begin  begin
4915    
4916          if GikoSys.Setting.ListOrientation = gloHorizontal then begin          if GikoSys.Setting.ListOrientation = gloHorizontal then begin
4917                  case GikoSys.Setting.ListWidthState of                  case GikoSys.Setting.ListWidthState of
4918                          glsMax, glsNormal: begin                          glsMax, glsNormal: begin
# Line 5181  begin Line 5190  begin
5190    
5191          if FIsMinimize = mtMinimized then begin          if FIsMinimize = mtMinimized then begin
5192                  if FActiveContent <> nil then begin                  if FActiveContent <> nil then begin
5193                          Application.ProcessMessages;                          //Application.ProcessMessages;
5194                          doc := Idispatch( olevariant(FActiveContent.Browser.ControlInterface).Document) as IHTMLDocument2;                          doc := Idispatch( olevariant(FActiveContent.Browser.ControlInterface).Document) as IHTMLDocument2;
5195                          doc.Body.ScrollTop := FActiveContent.Thread.ScrollTop;                          doc.Body.ScrollTop := FActiveContent.Thread.ScrollTop;
5196                          FIsMinimize := mtNone;                          FIsMinimize := mtNone;
# Line 5391  begin Line 5400  begin
5400                                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin                                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin
5401                                          doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document;                                          doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document;
5402                                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := doc.Body.ScrollTop;                                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := doc.Body.ScrollTop;
5403    
5404                                  end;                                  end;
5405                          except                          except
5406                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0;                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0;
# Line 7447  begin Line 7457  begin
7457                  Referer := Referer + ':' + Port;                  Referer := Referer + ':' + Port;
7458          Referer := Referer + Path;          Referer := Referer + Path;
7459          Headers := 'Referer: ' + Referer;          Headers := 'Referer: ' + Referer;
   
7460          FPreviewBrowser.Navigate(NavURL, Flags, TargetFrameName, PostData, Headers);          FPreviewBrowser.Navigate(NavURL, Flags, TargetFrameName, PostData, Headers);
   
7461          if ARect.Top + WindowHeight > Screen.DesktopHeight then          if ARect.Top + WindowHeight > Screen.DesktopHeight then
7462                  ARect.Top := Screen.DesktopHeight - WindowHeight;                  ARect.Top := Screen.DesktopHeight - WindowHeight;
7463          if ARect.Left + WindowWidth > Screen.DesktopWidth then          if ARect.Left + WindowWidth > Screen.DesktopWidth then
# Line 7492  var Line 7500  var
7500          Num: Integer;          Num: Integer;
7501          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
7502  begin  begin
7503            Result := False;
7504          Doc := FactiveContent.FBrowser.Document as IHtmlDocument2;          Doc := FactiveContent.FBrowser.Document as IHtmlDocument2;
7505          Range := Doc.selection.createRange as IHTMLTxtRange;          if Assigned(Doc) then begin
7506          s := CustomStringReplace(Range.text, ' ', ' ');//全角空白を半角空白に                  Range := Doc.selection.createRange as IHTMLTxtRange;
7507          s := ZenToHan(Trim(s));                  s := CustomStringReplace(Range.text, ' ', ' ');//全角空白を半角空白に
7508          if GikoSys.IsNumeric(s) then begin                  s := ZenToHan(Trim(s));
7509                    if GikoSys.IsNumeric(s) then begin
7510                  ThreadItem := GetActiveContent;  
7511                  if ThreadItem <> nil then begin                          ThreadItem := GetActiveContent;
7512                          Num := StrToInt(s);                          if ThreadItem <> nil then begin
7513                          FHint.PopupType := gptThread;                                  Num := StrToInt(s);
7514                          SetResPopupText(ThreadItem, Num, Num, False, False);                                  FHint.PopupType := gptThread;
7515                          if FHint.ResCount <> 0 then                                  SetResPopupText(ThreadItem, Num, Num, False, False);
7516                                  ShowTextPopup;                                  if FHint.ResCount <> 0 then
7517                          Result := False;                                          ShowTextPopup;
7518                  end else                                  Result := False;
7519                            end else
7520                                    Result := True;
7521                    end else begin
7522                          Result := True;                          Result := True;
7523          end else begin                  end;
                 Result := True;  
7524          end;          end;
7525  end;  end;
7526    
# Line 10361  var Line 10372  var
10372  begin  begin
10373          List := TList.Create;          List := TList.Create;
10374          try          try
10375                    Screen.Cursor := crHourGlass;
10376                  SelectListItem(List);                  SelectListItem(List);
10377                  FileSaveAs1.Dialog.Title := '選択スレッドをdatのまま保存';                  if ((GikoSys.Setting.ListOrientation = gloVertical) and
10378                  FileSaveAs1.Dialog.Filter := 'DATファイル(*.dat)|*.dat';                          (GikoSys.Setting.ListHeightState = glsMax)) or
10379                  for i := 0 to List.Count - 1 do begin                          ((GikoSys.Setting.ListOrientation = gloHorizontal) and
10380                          if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                          (GikoSys.Setting.ListWidthState = glsMax)) then
10381                                  FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;                          ShowMessage('スレッド一覧を表示してください')
10382                                  if FileSaveAs1.Execute then begin                  else if(List.Count = 0) then
10383                                          //なぜかキャンセルでもこっちに入ってくる                          ShowMessage('スレッドを選択してください')
10384                                          if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                  else begin
10385                                                  CopyFile(PChar(TThreadItem(List[i]).FilePath),                          FileSaveAs1.Dialog.Title := '選択スレッドをdatのまま保存';
10386                                                          PChar(FileSaveAs1.Dialog.FileName), true);                          FileSaveAs1.Dialog.Filter := 'DATファイル(*.dat)|*.dat';
10387                            for i := 0 to List.Count - 1 do begin
10388                                    if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10389                                            FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).FileName;
10390                                            if FileSaveAs1.Execute then begin
10391                                                    //なぜかキャンセルでもこっちに入ってくる
10392                                                    if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin
10393                                                            CopyFile(PChar(TThreadItem(List[i]).FilePath),
10394                                                                    PChar(FileSaveAs1.Dialog.FileName), true);
10395                                                    end;
10396                                          end;                                          end;
10397                                  end;                                  end;
10398                          end;                          end;
10399                  end;                  end;
10400          finally          finally
10401                    Screen.Cursor := crDefault;
10402                  List.Free;                  List.Free;
10403          end;          end;
10404    
# Line 10391  var Line 10413  var
10413  begin  begin
10414          List := TList.Create;          List := TList.Create;
10415          try          try
10416                    Screen.Cursor := crHourGlass;
10417                  SelectListItem(List);                  SelectListItem(List);
10418                  FileSaveAs1.Dialog.Title := '選択スレッドをHTML化して保存';                  if ((GikoSys.Setting.ListOrientation = gloVertical) and
10419                  FileSaveAs1.Dialog.Filter := 'HTMLファイル(*.html)|*.html';                          (GikoSys.Setting.ListHeightState = glsMax)) or
10420                  for i := 0 to List.Count - 1 do begin                          ((GikoSys.Setting.ListOrientation = gloHorizontal) and
10421                          if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin                          (GikoSys.Setting.ListWidthState = glsMax))      then
10422                                  FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).Title + '.html';                          ShowMessage('スレッド一覧を表示してください')
10423                                  if FileSaveAs1.Execute then begin                  else if(List.Count = 0) then
10424                                          //なぜかキャンセルでもこっちに入ってくる                          ShowMessage('スレッドを選択してください')
10425                                          if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin                  else begin
10426                                                  html := TStringList.Create;                          FileSaveAs1.Dialog.Title := '選択スレッドをHTML化して保存';
10427                                                  title := TThreadItem(List[i]).Title;                          FileSaveAs1.Dialog.Filter := 'HTMLファイル(*.html)|*.html';
10428                                                  try                          for i := 0 to List.Count - 1 do begin
10429                                                          GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);                                  if (TObject(List[i]) is TThreadItem) and (TThreadItem(List[i]).IsLogFile) then begin
10430                                                          html.SaveToFile(FileSaveAs1.Dialog.FileName);                                          FileSaveAs1.Dialog.FileName := TThreadItem(List[i]).Title + '.html';
10431                                                          SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));                                          if FileSaveAs1.Execute then begin
10432                                                  finally                                                  //なぜかキャンセルでもこっちに入ってくる
10433                                                          html.Free;                                                  if ExtractFilePath(FileSaveAs1.Dialog.FileName) <> '' then begin
10434                                                            html := TStringList.Create;
10435                                                            title := TThreadItem(List[i]).Title;
10436                                                            try
10437                                                                    GikoSys.CreateHTML3(html, TThreadItem(List[i]), title);
10438                                                                    html.SaveToFile(FileSaveAs1.Dialog.FileName);
10439                                                                    SkinorCSSFilesCopy(ExtractFilePath(FileSaveAs1.Dialog.FileName));
10440                                                            finally
10441                                                                    html.Free;
10442                                                            end;
10443                                                  end;                                                  end;
10444                                          end;                                          end;
10445                                  end;                                  end;
10446                          end;                          end;
10447                  end;                  end;
10448          finally          finally
10449                    Screen.Cursor := crDefault;
10450                  List.Free;                  List.Free;
10451          end;          end;
10452  end;  end;
# Line 10516  begin Line 10549  begin
10549          end;          end;
10550  end;  end;
10551    
10552    procedure TGikoForm.BrowserPanelCanResize(Sender: TObject; var NewWidth,
10553      NewHeight: Integer; var Resize: Boolean);
10554    var
10555            i: Integer;
10556    begin
10557            if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then
10558                    LockWindowUpdate(FActiveContent.Browser.Handle);
10559            for i := 0 to BROWSER_COUNT - 1 do
10560                    SetWindowPos(TWebBrowser(FBrowsers[i]).Handle, HWND_NOTOPMOST, 0, 0, NewWidth, NewHeight, SWP_NOMOVE + SWP_NOZORDER);
10561    
10562            if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
10563                    SetWindowPos(FActiveContent.Browser.Handle, HWND_NOTOPMOST, 0, 0, NewWidth, NewHeight, SWP_NOMOVE + SWP_NOZORDER);
10564                    LockWindowUpdate(0);
10565            end;
10566    end;
10567    
10568    procedure TGikoForm.LogFolderOpenActionExecute(Sender: TObject);
10569    var
10570            List: TList;
10571    begin
10572            if ((GikoSys.Setting.ListOrientation = gloVertical) and
10573                    (GikoSys.Setting.ListHeightState = glsMax)) or
10574                    ((GikoSys.Setting.ListOrientation = gloHorizontal) and
10575                    (GikoSys.Setting.ListWidthState = glsMax))      then begin
10576                    if(GetActiveContent <> nil) then begin
10577                            GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(GetActiveContent.FilePath) + '"');
10578                    end;
10579            end else if GetActiveList is TCategory then begin
10580                    List := TList.Create;
10581                    try
10582                            SelectListItem(List);
10583                            GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(List[0]).FilePath) + '"');
10584                    finally
10585                            List.Free;
10586                    end;
10587            end else if GetActiveList is TBoard then begin
10588                    GikoSys.CreateProcess('explorer.exe', '/e,"' + ExtractFilePath(TBoard(GetActiveList).FilePath) + '"');
10589            end;
10590    
10591    end;
10592    
10593    procedure TGikoForm.LogFolderOpenActionUpdate(Sender: TObject);
10594    begin
10595            if (GetActiveList is TCategory) and (ListView.SelCount > 0) then
10596                    LogFolderOpenAction.Enabled := True
10597            else if GetActiveList is TBoard then
10598                    LogFolderOpenAction.Enabled := True
10599            else
10600                    LogFolderOpenAction.Enabled := False;
10601    end;
10602    
10603  initialization  initialization
10604                                  OleInitialize(nil);                                  OleInitialize(nil);
10605  finalization  finalization

Legend:
Removed from v.1.344  
changed lines
  Added in v.1.345

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26