| 28 |
TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser); |
TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser); |
| 29 |
TMinimizeType = (mtNone, mtMinimizing, mtMinimized); |
TMinimizeType = (mtNone, mtMinimizing, mtMinimized); |
| 30 |
|
|
| 31 |
|
TBrowserRecord = class; |
| 32 |
|
|
| 33 |
TGikoForm = class(TForm) |
TGikoForm = class(TForm) |
| 34 |
StatusBar: TStatusBar; |
StatusBar: TStatusBar; |
| 35 |
MainPanel: TPanel; |
MainPanel: TPanel; |
| 524 |
KoreCopy: TAction; |
KoreCopy: TAction; |
| 525 |
N64: TMenuItem; |
N64: TMenuItem; |
| 526 |
dummy1: TMenuItem; |
dummy1: TMenuItem; |
|
Browser: TWebBrowser; |
|
| 527 |
TreeSelectLogDeletePopupMenu: TMenuItem; |
TreeSelectLogDeletePopupMenu: TMenuItem; |
| 528 |
N65: TMenuItem; |
N65: TMenuItem; |
| 529 |
BBSSelectPopupMenu: TPopupMenu; |
BBSSelectPopupMenu: TPopupMenu; |
| 531 |
TmpToolBar: TToolBar; |
TmpToolBar: TToolBar; |
| 532 |
TreeSelectNameCopy: TAction; |
TreeSelectNameCopy: TAction; |
| 533 |
TreeSelectNamePupupMenu: TMenuItem; |
TreeSelectNamePupupMenu: TMenuItem; |
| 534 |
|
Browser: TWebBrowser; |
| 535 |
|
BrowserPanel: TPanel; |
| 536 |
procedure FormCreate(Sender: TObject); |
procedure FormCreate(Sender: TObject); |
| 537 |
procedure FormDestroy(Sender: TObject); |
procedure FormDestroy(Sender: TObject); |
| 538 |
procedure CabinetPanelHide(Sender: TObject); |
procedure CabinetPanelHide(Sender: TObject); |
| 851 |
procedure TreeSelectNameCopyExecute(Sender: TObject); |
procedure TreeSelectNameCopyExecute(Sender: TObject); |
| 852 |
procedure FavoriteTreeViewMouseUp(Sender: TObject; |
procedure FavoriteTreeViewMouseUp(Sender: TObject; |
| 853 |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
| 854 |
|
procedure ThreadPanelResize(Sender: TObject); |
| 855 |
|
procedure OnlyAHundredResUpdate(Sender: TObject); |
| 856 |
private |
private |
| 857 |
{ Private 宣言 } |
{ Private 宣言 } |
| 858 |
//RoundList : TRoundList; |
//RoundList : TRoundList; |
| 878 |
FItemNoVisible: Boolean; //リスト番号表示フラグ |
FItemNoVisible: Boolean; //リスト番号表示フラグ |
| 879 |
FViewType: TGikoViewType; //リストアイテム表示タイプ |
FViewType: TGikoViewType; //リストアイテム表示タイプ |
| 880 |
FActiveList: TObject; |
FActiveList: TObject; |
| 881 |
FActiveContent: TThreadItem; // |
FActiveContent: TBrowserRecord; // |
| 882 |
FActiveBBS : TBBS; |
FActiveBBS : TBBS; |
| 883 |
FHistoryList: TList; //ヒストリリスト |
FHistoryList: TList; //ヒストリリスト |
| 884 |
FTreeType: TGikoTreeType; |
FTreeType: TGikoTreeType; |
| 886 |
FNameCookie: string; |
FNameCookie: string; |
| 887 |
FMailCookie: string; |
FMailCookie: string; |
| 888 |
// FLastRoundTime: TDateTime; |
// FLastRoundTime: TDateTime; |
| 889 |
BrowserNullTab: TThreadItem; |
BrowserNullTab: TBrowserRecord; |
| 890 |
// DoubleClickOccurred: array [TMouseButton] of Boolean; |
// DoubleClickOccurred: array [TMouseButton] of Boolean; |
| 891 |
FDownloadTitle: string; //ダウンロード中のタイトル名 |
FDownloadTitle: string; //ダウンロード中のタイトル名 |
| 892 |
FDownloadMax: Integer; //ダウンロード中の最大サイズ |
FDownloadMax: Integer; //ダウンロード中の最大サイズ |
| 930 |
procedure SetActiveList(Obj: TObject); |
procedure SetActiveList(Obj: TObject); |
| 931 |
procedure ListClick; |
procedure ListClick; |
| 932 |
procedure ListDoubleClick(Shift: TShiftState); |
procedure ListDoubleClick(Shift: TShiftState); |
| 933 |
procedure BrowserMovement(AName: string); |
procedure BrowserMovement(const AName: string); overload; |
| 934 |
|
procedure BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); overload; |
| 935 |
procedure SelectListItem(List: TList); |
procedure SelectListItem(List: TList); |
| 936 |
// procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1); |
// procedure SetProgressValue(Number: Integer; Value: Integer; Max: Integer = -1); |
| 937 |
procedure DeleteTab(ThreadItem: TThreadItem); |
procedure DeleteTab(ThreadItem: TThreadItem); overload; |
| 938 |
|
procedure DeleteTab(BrowserRecord: TBrowserRecord); overload; |
| 939 |
function Hook(var Message: TMessage): Boolean; |
function Hook(var Message: TMessage): Boolean; |
| 940 |
procedure AddRoundNameMenu(MenuItem: TMenuItem); |
procedure AddRoundNameMenu(MenuItem: TMenuItem); |
| 941 |
procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload; |
procedure SetSelectItemRound(RoundFlag: Boolean; RoundName: string); overload; |
| 958 |
// procedure SetStdToolBar; |
// procedure SetStdToolBar; |
| 959 |
// function GetAction(ActionName: string): TContainedAction; |
// function GetAction(ActionName: string): TContainedAction; |
| 960 |
procedure SetLinkBar; |
procedure SetLinkBar; |
|
procedure ClearLinkBar; |
|
| 961 |
function GetWidthAllToolButton(ToolBar: TToolBar): Integer; |
function GetWidthAllToolButton(ToolBar: TToolBar): Integer; |
| 962 |
procedure MenuBarChevronMenu; |
procedure MenuBarChevronMenu; |
| 963 |
procedure LinkBarChevronMenu; |
procedure LinkBarChevronMenu; |
| 974 |
procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject ); |
procedure FavoriteAddTo( SenderNode: TTreeNode; Source: TObject ); |
| 975 |
procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject ); |
procedure FavoriteDragDrop( SenderNode: TTreeNode; Source: TObject ); |
| 976 |
// |
// |
|
procedure BrowserTabClick(Sender: TObject); |
|
| 977 |
procedure SetListViewBackGroundColor(value: TColor); |
procedure SetListViewBackGroundColor(value: TColor); |
| 978 |
procedure BBSMenuItemOnClick( Sender : TObject ); |
procedure BBSMenuItemOnClick( Sender : TObject ); |
| 979 |
// |
// |
| 1028 |
property NameCookie: string read FNameCookie write FNameCookie; |
property NameCookie: string read FNameCookie write FNameCookie; |
| 1029 |
property MailCookie: string read FMailCookie write FMailCookie; |
property MailCookie: string read FMailCookie write FMailCookie; |
| 1030 |
|
|
| 1031 |
procedure SetContent(ThreadItem: TThreadItem); |
procedure SetContent(inThread: TBrowserRecord); |
| 1032 |
function GetActiveContent: TThreadItem; |
function GetActiveContent: TThreadItem; |
| 1033 |
function GetActiveList: TObject; |
function GetActiveList: TObject; |
| 1034 |
|
|
| 1090 |
property Data: Pointer read FData write FData; |
property Data: Pointer read FData write FData; |
| 1091 |
end; |
end; |
| 1092 |
|
|
| 1093 |
|
TBrowserRecord = class( TObject ) |
| 1094 |
|
private |
| 1095 |
|
FBrowser : TWebBrowser; |
| 1096 |
|
FEvent: THTMLDocumentEventSink;//ブラウザドキュメントイベント |
| 1097 |
|
FThread : TThreadItem; |
| 1098 |
|
FLastSize : Integer; |
| 1099 |
|
FRepaint : Boolean; |
| 1100 |
|
FOnlyHundred: Boolean; |
| 1101 |
|
public |
| 1102 |
|
destructor Destroy; override; |
| 1103 |
|
property Browser : TWebBrowser read FBrowser write FBrowser; |
| 1104 |
|
property Thread : TThreadItem read FThread write FThread; |
| 1105 |
|
property LastSize : Integer read FLastSize write FLastSize; |
| 1106 |
|
property Repaint : Boolean read FRepaint write FRepaint; |
| 1107 |
|
property OnlyHundred : Boolean read FOnlyHundred write FOnlyHundred; |
| 1108 |
|
end; |
| 1109 |
|
|
| 1110 |
var |
var |
| 1111 |
GikoForm: TGikoForm; |
GikoForm: TGikoForm; |
| 1112 |
|
|
| 1207 |
FTreeType := gttNone; |
FTreeType := gttNone; |
| 1208 |
|
|
| 1209 |
FSearchDialog := nil; |
FSearchDialog := nil; |
| 1210 |
|
BrowserNullTab := TBrowserRecord.Create; |
| 1211 |
|
BrowserNullTab.Browser := Browser; |
| 1212 |
// 起動時に保存されてしまう対策 |
// 起動時に保存されてしまう対策 |
| 1213 |
FIsIgnoreResize := True; |
FIsIgnoreResize := True; |
| 1214 |
|
|
| 1311 |
BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; |
BrowserTab.Font.Name := GikoSys.Setting.BrowserTabFontName; |
| 1312 |
BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; |
BrowserTab.Font.Size := GikoSys.Setting.BrowserTabFontSize; |
| 1313 |
FDragWFirst := false; |
FDragWFirst := false; |
| 1314 |
|
SetContent(BrowserNullTab); //ブラウザを空白表示 |
| 1315 |
// TreeView.TopItem.Expanded := True; //ツリートップ項目だけを開く |
// TreeView.TopItem.Expanded := True; //ツリートップ項目だけを開く |
| 1316 |
// TreeView.Selected := TreeView.Items[0]; //ツリーのトップ項目を選択する |
// TreeView.Selected := TreeView.Items[0]; //ツリーのトップ項目を選択する |
| 1317 |
SetContent(nil); //ブラウザを空白表示 |
|
| 1318 |
|
|
| 1319 |
//最大化・ウィンドウ位置復元 |
//最大化・ウィンドウ位置復元 |
| 1320 |
wp.length := sizeof(wp); |
wp.length := sizeof(wp); |
| 1507 |
FHint := TResPopup.Create(Self); |
FHint := TResPopup.Create(Self); |
| 1508 |
|
|
| 1509 |
// 最後に選択されたキャビネットの復元 |
// 最後に選択されたキャビネットの復元 |
| 1510 |
CabinetVisible( False ); |
CabinetVisible( False ); |
| 1511 |
if GikoSys.Setting.CabinetVisible then begin |
if GikoSys.Setting.CabinetVisible then begin |
| 1512 |
i := CabinetSelectPopupMenu.Items.Count - 1; |
i := CabinetSelectPopupMenu.Items.Count - 1; |
| 1513 |
if GikoSys.Setting.CabinetIndex = i - 1 then |
if GikoSys.Setting.CabinetIndex = i - 1 then |
| 1550 |
|
|
| 1551 |
//Samba24のファイルチェック |
//Samba24のファイルチェック |
| 1552 |
GikoSys.SambaFileExists(); |
GikoSys.SambaFileExists(); |
| 1553 |
|
|
| 1554 |
end; |
end; |
| 1555 |
|
|
| 1556 |
// CoolBar の設定を変数に保存 |
// CoolBar の設定を変数に保存 |
| 1764 |
GikoSys.Setting.MessegeBarHeight := MessagePanel.Height; |
GikoSys.Setting.MessegeBarHeight := MessagePanel.Height; |
| 1765 |
except |
except |
| 1766 |
end; |
end; |
|
|
|
| 1767 |
// リアルタイムに保存されるので、また、ウィンドウサイズが CoolBar より |
// リアルタイムに保存されるので、また、ウィンドウサイズが CoolBar より |
| 1768 |
// 小さくなっているときに保存すると値が上書きされてしまうのでここでは保存しない |
// 小さくなっているときに保存すると値が上書きされてしまうのでここでは保存しない |
| 1769 |
{ |
{ |
| 1788 |
|
|
| 1789 |
try |
try |
| 1790 |
//タブクローズ |
//タブクローズ |
| 1791 |
//NotSelectTabCloseAction.Execute; |
|
| 1792 |
{if BrowserTab.Tabs.Count >= 1 then begin |
BrowserNullTab.Thread := nil; |
| 1793 |
DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0])); |
BrowserTab.OnChange := nil; |
| 1794 |
|
BrowserTab.Tabs.BeginUpdate; |
| 1795 |
|
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin |
| 1796 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 1797 |
|
end; |
| 1798 |
|
FActiveContent := nil; |
| 1799 |
|
BrowserTab.Tabs.Clear; |
| 1800 |
|
BrowserTab.Tabs.EndUpdate; |
| 1801 |
|
BrowserTab.OnChange := BrowserTabChange; |
| 1802 |
|
except |
| 1803 |
|
end; |
| 1804 |
|
try |
| 1805 |
|
if BrowserNullTab <> nil then begin |
| 1806 |
|
BrowserNullTab.Browser := nil; {*BrowserNullTabのBrowserは設計時に貼り付けてる奴 |
| 1807 |
|
*なのでここでFreeされると困るのではずしてしまう。 |
| 1808 |
|
*} |
| 1809 |
|
BrowserNullTab.Free; |
| 1810 |
end; |
end; |
|
} |
|
| 1811 |
except |
except |
| 1812 |
end; |
end; |
| 1813 |
|
|
| 1968 |
//タブクローズ |
//タブクローズ |
| 1969 |
NotSelectTabCloseAction.Execute; |
NotSelectTabCloseAction.Execute; |
| 1970 |
if BrowserTab.Tabs.Count >= 1 then |
if BrowserTab.Tabs.Count >= 1 then |
| 1971 |
DeleteTab(TThreadItem(BrowserTab.Tabs.Objects[0])); |
for i := BrowserTab.Tabs.Count - 1 downto 0 do |
| 1972 |
|
DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[i])); |
| 1973 |
//TreeViewクリア(BBS2ch.Freeの後にクリアするとXPスタイル時にエラー出る) |
//TreeViewクリア(BBS2ch.Freeの後にクリアするとXPスタイル時にエラー出る) |
| 1974 |
TreeView.Items.Clear; |
TreeView.Items.Clear; |
| 1975 |
|
|
| 2459 |
begin |
begin |
| 2460 |
try |
try |
| 2461 |
try |
try |
| 2462 |
if (FActiveContent <> nil) and (Assigned(Browser.Document)) then begin |
if (FActiveContent <> nil) and (Assigned(TWebBrowser(Sender).Document)) then begin |
| 2463 |
if LowerCase(OleVariant(IHTMLDocument2(Browser.Document)).charset) <> 'shift_jis' then |
// if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then |
| 2464 |
OleVariant(IHTMLDocument2(Browser.Document)).charset := 'shift_jis'; |
// OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis'; |
| 2465 |
end; |
end; |
| 2466 |
except |
except |
| 2467 |
end; |
end; |
| 2581 |
wkIntTo := 9999; |
wkIntTo := 9999; |
| 2582 |
|
|
| 2583 |
//ATitle := ActiveFileName <> PathRec.FKey; |
//ATitle := ActiveFileName <> PathRec.FKey; |
| 2584 |
if GetActiveContent.URL = URL then |
if (FActiveContent <> nil) and (FActiveContent.Thread.URL = URL) then |
| 2585 |
ATitle := false |
ATitle := false |
| 2586 |
else |
else |
| 2587 |
ATitle := true; |
ATitle := true; |
| 2802 |
var |
var |
| 2803 |
ThreadItem: TThreadItem; |
ThreadItem: TThreadItem; |
| 2804 |
begin |
begin |
|
// |
|
| 2805 |
// TListView(Sender).Canvas.Font.Style := []; |
// TListView(Sender).Canvas.Font.Style := []; |
| 2806 |
if TObject(Item.Data) is TThreadItem then begin |
if TObject(Item.Data) is TThreadItem then begin |
| 2807 |
ThreadItem := TThreadItem(Item.Data); |
ThreadItem := TThreadItem(Item.Data); |
| 3173 |
i: Integer; |
i: Integer; |
| 3174 |
// OldIndex: Integer; |
// OldIndex: Integer; |
| 3175 |
favItem : TFavoriteThreadItem; |
favItem : TFavoriteThreadItem; |
| 3176 |
|
newBrowser : TBrowserRecord; |
| 3177 |
begin |
begin |
| 3178 |
|
|
| 3179 |
if Threaditem = nil then Exit; |
if Threaditem = nil then Exit; |
| 3180 |
|
|
| 3181 |
if ThreadItem.IsLogFile then begin |
if ThreadItem.IsLogFile then begin |
| 3184 |
if not AddHistory( favItem ) then |
if not AddHistory( favItem ) then |
| 3185 |
favItem.Free; |
favItem.Free; |
| 3186 |
|
|
|
|
|
| 3187 |
for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
| 3188 |
if TObject(BrowserTab.Tabs.Objects[i]) is TThreadItem then begin |
if TObject(BrowserTab.Tabs.Objects[i]) is TBrowserRecord then begin |
| 3189 |
if TThreadItem(BrowserTab.Tabs.Objects[i]) = ThreadItem then begin |
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin |
| 3190 |
if ActiveTab then begin |
if ActiveTab then begin |
| 3191 |
//OldIndex := BrowserTab.TabIndex; |
//OldIndex := BrowserTab.TabIndex; |
| 3192 |
BrowserTab.TabIndex := i; |
BrowserTab.TabIndex := i; |
| 3201 |
|
|
| 3202 |
if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin |
if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin |
| 3203 |
BrowserTab.Tabs.Insert(0, GikoSys.GetShortName(ThreadItem.Title, 20)); |
BrowserTab.Tabs.Insert(0, GikoSys.GetShortName(ThreadItem.Title, 20)); |
| 3204 |
BrowserTab.Tabs.Objects[0] := ThreadItem; |
newBrowser := TBrowserRecord.Create; |
| 3205 |
if ActiveTab then |
newBrowser.Browser := TWebBrowser.CreateParented( BrowserPanel.Handle ); |
| 3206 |
|
TOleControl(newBrowser.Browser).Parent := BrowserPanel; |
| 3207 |
|
//TOleControl(newBrowser.Browser).Visible := false; |
| 3208 |
|
TOleControl(newBrowser.Browser).Align := alClient; |
| 3209 |
|
newBrowser.Browser.OnDocumentComplete := BrowserDocumentComplete; |
| 3210 |
|
newBrowser.Browser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
| 3211 |
|
newBrowser.Browser.OnEnter := BrowserEnter; |
| 3212 |
|
newBrowser.Browser.OnNewWindow2 := BrowserNewWindow2; |
| 3213 |
|
newBrowser.Browser.OnStatusTextChange := BrowserStatusTextChange; |
| 3214 |
|
newBrowser.Browser.OnTitleChange := BrowserTitleChange; |
| 3215 |
|
newBrowser.thread := ThreadItem; |
| 3216 |
|
newBrowser.Repaint := false; |
| 3217 |
|
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3218 |
|
newBrowser.Browser.Navigate( 'about:blank' ); |
| 3219 |
|
//ShowWindow(newBrowser.Browser.Handle, SW_SHOWNOACTIVATE); |
| 3220 |
|
//SetWindowPos( newBrowser.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER); |
| 3221 |
|
BrowserTab.Tabs.Objects[0] := newBrowser; |
| 3222 |
|
if ActiveTab then begin |
| 3223 |
BrowserTab.TabIndex := 0; |
BrowserTab.TabIndex := 0; |
| 3224 |
|
//BrowserTab.OnChange(nil); |
| 3225 |
|
end; |
| 3226 |
|
|
| 3227 |
end else begin |
end else begin |
| 3228 |
i := BrowserTab.Tabs.Add(GikoSys.GetShortName(ThreadItem.Title, 20)); |
i := BrowserTab.Tabs.Add(GikoSys.GetShortName(ThreadItem.Title, 20)); |
| 3229 |
BrowserTab.Tabs.Objects[i] := ThreadItem; |
newBrowser := TBrowserRecord.Create; |
| 3230 |
if ActiveTab then |
newBrowser.Browser := TWebBrowser.CreateParented( BrowserPanel.Handle ); |
| 3231 |
|
TOleControl(newBrowser.Browser).Parent := BrowserPanel; |
| 3232 |
|
//TOleControl(newBrowser.Browser).Visible := false; |
| 3233 |
|
TOleControl(newBrowser.Browser).Align := alClient; |
| 3234 |
|
newBrowser.Browser.OnDocumentComplete := BrowserDocumentComplete; |
| 3235 |
|
newBrowser.Browser.OnBeforeNavigate2 := BrowserBeforeNavigate2; |
| 3236 |
|
newBrowser.Browser.OnEnter := BrowserEnter; |
| 3237 |
|
newBrowser.Browser.OnNewWindow2 := BrowserNewWindow2; |
| 3238 |
|
newBrowser.Browser.OnStatusTextChange := BrowserStatusTextChange; |
| 3239 |
|
newBrowser.Browser.OnTitleChange := BrowserTitleChange; |
| 3240 |
|
newBrowser.thread := ThreadItem; |
| 3241 |
|
newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3242 |
|
newBrowser.Repaint := false; |
| 3243 |
|
newBrowser.Browser.Navigate( 'about:blank' ); |
| 3244 |
|
//ShowWindow(newBrowser.Browser.Handle, SW_SHOWNOACTIVATE); |
| 3245 |
|
//SetWindowPos( newBrowser.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER); |
| 3246 |
|
BrowserTab.Tabs.Objects[i] := newBrowser; |
| 3247 |
|
if ActiveTab then begin |
| 3248 |
BrowserTab.TabIndex := i; |
BrowserTab.TabIndex := i; |
| 3249 |
|
//BrowserTab.OnChange(nil); |
| 3250 |
|
end; |
| 3251 |
end; |
end; |
| 3252 |
if ( ActiveTab ) or ( BrowserTab.Tabs.Count = 1 ) then begin |
if ( ActiveTab ) or ( BrowserTab.Tabs.Count = 1 ) then begin |
| 3253 |
BrowserTab.OnChange(nil); |
BrowserTab.OnChange(nil); |
| 3254 |
BrowserNullTab := nil; |
//BrowserNullTab := nil; |
| 3255 |
end; |
end; |
| 3256 |
end else begin |
end else begin |
| 3257 |
//OldIndex := BrowserTab.TabIndex; |
//OldIndex := BrowserTab.TabIndex; |
| 3258 |
BrowserNullTab := ThreadItem; |
if BrowserNullTab = nil then begin |
| 3259 |
|
BrowserNullTab := TBrowserRecord.Create; |
| 3260 |
|
BrowserNullTab.Browser := Browser; |
| 3261 |
|
end; |
| 3262 |
|
//BrowserNullTab.browser := TWebBrowser.CreateParented( BrowserPanel.Handle ); |
| 3263 |
|
BrowserNullTab.thread := ThreadItem; |
| 3264 |
|
BrowserNullTab.Browser.Navigate( 'about:blank' ); |
| 3265 |
|
SetWindowPos( BrowserNullTab.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER); |
| 3266 |
BrowserTab.TabIndex := -1; |
BrowserTab.TabIndex := -1; |
| 3267 |
// if OldIndex = -1 then |
// if OldIndex = -1 then |
| 3268 |
BrowserTab.OnChange(nil); |
SetContent(BrowserNullTab); |
| 3269 |
|
//BrowserTab.OnChange(nil); |
| 3270 |
end; |
end; |
| 3271 |
BrowserTab.Repaint; |
BrowserTab.Repaint; |
| 3272 |
if GikoSys.Setting.URLDisplay then |
if GikoSys.Setting.URLDisplay then |
| 3273 |
AddressComboBox.Text := ThreadItem.URL; |
AddressComboBox.Text := ThreadItem.URL; |
| 3274 |
|
|
| 3275 |
end; |
end; |
| 3276 |
|
|
| 3277 |
procedure TGikoForm.SetContent(ThreadItem: TThreadItem); |
procedure TGikoForm.SetContent(inThread : TBrowserRecord); |
| 3278 |
var |
var |
| 3279 |
BBSID: string; |
BBSID: string; |
| 3280 |
FileName: string; |
FileName: string; |
| 3284 |
s: string; |
s: string; |
| 3285 |
// OldCursor: TCursor; |
// OldCursor: TCursor; |
| 3286 |
//i: Integer; |
//i: Integer; |
| 3287 |
|
ThreadItem : TThreadItem; |
| 3288 |
|
Thread : TBrowserRecord; |
| 3289 |
begin |
begin |
| 3290 |
while (Browser.ReadyState <> READYSTATE_COMPLETE) and |
if inThread = nil then |
| 3291 |
(Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
begin |
| 3292 |
Application.ProcessMessages; |
Thread := TBrowserRecord.Create; |
| 3293 |
|
Thread.Browser := Browser; |
| 3294 |
|
Thread.Thread := nil; |
| 3295 |
|
end else begin |
| 3296 |
|
Thread := inThread; |
| 3297 |
end; |
end; |
| 3298 |
|
|
| 3299 |
if (FActiveContent <> nil) and |
if (FActiveContent <> nil) and |
| 3300 |
(FActiveContent <> ThreadItem) and |
(FActiveContent.Thread <> Thread.Thread) and |
| 3301 |
(Assigned(Browser.Document)) then begin |
(Assigned(FActiveContent.Browser.Document)) then begin |
| 3302 |
try |
try |
| 3303 |
try |
try |
| 3304 |
Sleep(1); |
Sleep(1); |
| 3305 |
//Application.ProcessMessages; |
//Application.ProcessMessages; |
| 3306 |
FActiveContent.ScrollTop := OleVariant(IHTMLDocument2(Browser.Document)).Body.ScrollTop; |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).Body.ScrollTop; |
| 3307 |
|
TOleControl(FActiveContent.Browser).Visible := false; |
| 3308 |
except |
except |
| 3309 |
on E: Exception do |
on E: Exception do |
| 3310 |
MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0); |
MsgBox(Handle, E.Message, 'SetContent[<-ScrollTop]', 0); |
| 3313 |
end; |
end; |
| 3314 |
end; |
end; |
| 3315 |
|
|
| 3316 |
FActiveContent := ThreadItem; |
while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 3317 |
|
(Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 3318 |
|
Application.ProcessMessages; |
| 3319 |
|
end; |
| 3320 |
|
|
| 3321 |
|
ThreadItem := Thread.Thread; |
| 3322 |
|
|
| 3323 |
if ThreadItem = nil then begin |
if Thread.Thread = nil then begin |
| 3324 |
Browser.Navigate(BLANK_HTML); |
Thread.Browser.Navigate(BLANK_HTML); |
| 3325 |
BrowserBoardNameLabel.Caption := ''; |
BrowserBoardNameLabel.Caption := ''; |
| 3326 |
ItemBoardImage.Picture := nil; |
ItemBoardImage.Picture := nil; |
| 3327 |
BrowserNameLabel.Caption := ''; |
BrowserNameLabel.Caption := ''; |
| 3328 |
ItemImage.Picture := nil; |
ItemImage.Picture := nil; |
| 3329 |
|
BrowserNullTab.Thread := nil; |
| 3330 |
FActiveContent := nil; |
FActiveContent := nil; |
| 3331 |
Exit; |
Exit; |
| 3332 |
end; |
end; |
| 3344 |
if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0; |
if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0; |
| 3345 |
TreeView.Refresh; |
TreeView.Refresh; |
| 3346 |
end; |
end; |
|
|
|
| 3347 |
if not ThreadItem.IsLogFile then begin |
if not ThreadItem.IsLogFile then begin |
| 3348 |
|
|
| 3349 |
if (not Assigned(Browser.Document)) then begin |
if (not Assigned(Thread.Browser.Document)) then begin |
| 3350 |
Browser.Navigate('about:blank'); |
Thread.Browser.Navigate('about:blank'); |
| 3351 |
while (not Assigned(Browser.Document)) do begin |
//while (not Assigned(Thread.Browser.Document)) do begin |
| 3352 |
Application.ProcessMessages; |
// Application.ProcessMessages; |
| 3353 |
end; |
//end; |
| 3354 |
end; |
end; |
| 3355 |
try |
try |
| 3356 |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>'; |
| 3357 |
doc := Browser.Document; |
doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; |
| 3358 |
doc.open; |
doc.open; |
| 3359 |
doc.charset := 'Shift_JIS'; |
doc.charset := 'Shift_JIS'; |
| 3360 |
doc.Write(s); |
doc.Write(s); |
| 3362 |
finally |
finally |
| 3363 |
end; |
end; |
| 3364 |
end else begin |
end else begin |
| 3365 |
GikoSys.CreateHTML2(Browser.Document, ThreadItem, sTitle); |
if(ThreadItem.Size <> Thread.LastSize) or (Thread.Repaint) or(Thread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin |
| 3366 |
try |
Thread.LastSize := ThreadItem.Size; |
| 3367 |
doc := Browser.Document; |
Thread.Repaint := false; |
| 3368 |
Application.ProcessMessages; |
try |
| 3369 |
//ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。 |
doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; |
| 3370 |
//相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる |
GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
| 3371 |
// byもじゅ(2004/01/20) |
Thread.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3372 |
|
Application.ProcessMessages; |
| 3373 |
if ThreadItem.UnRead then |
{ |
| 3374 |
BrowserMovement('new') |
while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 3375 |
else if (ThreadItem.ScrollTop <> 0) and (not ThreadItem.UnRead) then begin |
(Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 3376 |
try |
Application.ProcessMessages; |
|
doc.Body.ScrollTop := ThreadItem.ScrollTop; |
|
|
except |
|
|
on E: Exception do |
|
|
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
|
| 3377 |
end; |
end; |
| 3378 |
|
} |
| 3379 |
|
//ここでApplication.ProcessMessagesを呼ぶことによってWebBrowserを更新させる。 |
| 3380 |
|
//相しないと一画面分しか描画できてないのでそれ以上のスクロール量を指定しても無効になる |
| 3381 |
|
// byもじゅ(2004/01/20) |
| 3382 |
|
|
| 3383 |
|
if ThreadItem.UnRead then |
| 3384 |
|
BrowserMovement('new', Thread) |
| 3385 |
|
else if ThreadItem.ScrollTop <> 0 then begin |
| 3386 |
|
try |
| 3387 |
|
doc.Body.ScrollTop := ThreadItem.ScrollTop; |
| 3388 |
|
except |
| 3389 |
|
on E: Exception do |
| 3390 |
|
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
| 3391 |
|
end; |
| 3392 |
|
end; |
| 3393 |
|
finally |
| 3394 |
|
// Application.ProcessMessages; |
| 3395 |
end; |
end; |
| 3396 |
finally |
|
| 3397 |
// Application.ProcessMessages; |
ThreadItem.UnRead := False; |
| 3398 |
|
ListView.Refresh; |
| 3399 |
|
end else begin |
| 3400 |
|
ThreadItem.UnRead := False; |
| 3401 |
|
ListView.Refresh; |
| 3402 |
end; |
end; |
| 3403 |
|
|
|
ThreadItem.UnRead := False; |
|
|
ListView.Refresh; |
|
|
end; |
|
| 3404 |
|
|
| 3405 |
|
end; |
| 3406 |
|
if(FActiveContent <> nil) and (FActiveContent <> Thread) then begin |
| 3407 |
|
TOleControl(FActiveContent.Browser).Visible := false; |
| 3408 |
|
end; |
| 3409 |
|
FActiveContent := Thread; |
| 3410 |
|
LockWindowUpdate(FActiveContent.Browser.Handle); |
| 3411 |
|
TOleControl(FActiveContent.Browser).Visible := true; |
| 3412 |
|
LockWindowUpdate(0); |
| 3413 |
BrowserBoardNameLabel.Caption := ThreadItem.ParentBoard.Title; |
BrowserBoardNameLabel.Caption := ThreadItem.ParentBoard.Title; |
| 3414 |
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap); |
| 3415 |
BrowserNameLabel.Caption := ThreadItem.Title; |
BrowserNameLabel.Caption := ThreadItem.Title; |
| 3424 |
|
|
| 3425 |
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8; |
| 3426 |
BrowserNameLabel.Left := ItemImage.Left + 20; |
BrowserNameLabel.Left := ItemImage.Left + 20; |
| 3427 |
|
|
| 3428 |
finally |
finally |
| 3429 |
Screen.Cursor := crDefault; |
Screen.Cursor := crDefault; |
| 3430 |
end; |
end; |
| 3431 |
end; |
end; |
| 3432 |
|
|
| 3433 |
function TGikoForm.GetActiveContent: TThreadItem; |
function TGikoForm.GetActiveContent: TThreadItem; |
| 3434 |
var |
//var |
| 3435 |
Index: Integer; |
//Index: Integer; |
| 3436 |
begin |
begin |
| 3437 |
|
if FActiveContent <> nil then |
| 3438 |
|
Result := FActiveContent.Thread |
| 3439 |
|
else |
| 3440 |
|
Result := nil; |
| 3441 |
|
{ |
| 3442 |
Result := nil; |
Result := nil; |
| 3443 |
if BrowserTab.TabIndex = -1 then begin |
if BrowserTab.TabIndex = -1 then begin |
| 3444 |
Result := BrowserNullTab; |
try |
| 3445 |
|
if (BrowserNullTab <> nil )and (BrowserNullTab.Thread <> nil )then |
| 3446 |
|
Result := BrowserNullTab.Thread; |
| 3447 |
|
except |
| 3448 |
|
end; |
| 3449 |
Exit; |
Exit; |
| 3450 |
end; |
end; |
| 3451 |
Index := BrowserTab.TabIndex; |
Index := BrowserTab.TabIndex; |
| 3452 |
if BrowserTab.Tabs.Objects[Index] is TThreadItem then |
if(TObject(BrowserTab.Tabs.Objects[Index]) is TBrowserRecord) and |
| 3453 |
Result := TThreadItem(BrowserTab.Tabs.Objects[Index]); |
(TBrowserRecord(BrowserTab.Tabs.Objects[Index]).Thread <> nil) then |
| 3454 |
|
Result := TBrowserRecord(BrowserTab.Tabs.Objects[Index]).Thread; |
| 3455 |
|
} |
| 3456 |
// Result := FActiveContent; |
// Result := FActiveContent; |
| 3457 |
end; |
end; |
| 3458 |
|
|
| 4206 |
//TreeViewChange(nil, TreeView.Selected); |
//TreeViewChange(nil, TreeView.Selected); |
| 4207 |
end else if TObject(ListView.Selected.Data) is TThreadItem then begin |
end else if TObject(ListView.Selected.Data) is TThreadItem then begin |
| 4208 |
//if TObject(ListView.Selected.Data) is TThreadItem then begin |
//if TObject(ListView.Selected.Data) is TThreadItem then begin |
| 4209 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 4210 |
ThreadItem := TThreadItem(ListView.Selected.Data); |
ThreadItem := TThreadItem(ListView.Selected.Data); |
| 4211 |
DownloadContent(ThreadItem, shiftDown); |
DownloadContent(ThreadItem, shiftDown); |
| 4212 |
//end; |
//end; |
| 4213 |
end; |
end; |
| 4214 |
end; |
end; |
| 4215 |
|
procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); |
| 4216 |
|
var |
| 4217 |
|
top: Integer; |
| 4218 |
|
item: OleVariant; |
| 4219 |
|
nm: OleVariant; |
| 4220 |
|
activeBrower :TWebBrowser; |
| 4221 |
|
begin |
| 4222 |
|
// OleVariant(Browser.Document).parentWindow.location.hash := AName; |
| 4223 |
|
|
| 4224 |
|
while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 4225 |
|
(BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 4226 |
|
Application.ProcessMessages; |
| 4227 |
|
end; |
| 4228 |
|
|
| 4229 |
procedure TGikoForm.BrowserMovement(AName: string); |
// Access Violation が起きる事があるので今後要チェック |
| 4230 |
|
if(BrowserRecord <> nil) and (BrowserRecord.FBrowser <> nil) then begin |
| 4231 |
|
activeBrower := BrowserRecord.FBrowser; |
| 4232 |
|
try |
| 4233 |
|
top := 0; |
| 4234 |
|
nm := AName; |
| 4235 |
|
item := OleVariant( activeBrower.Document as IHTMLDocument2).anchors.item(nm); |
| 4236 |
|
repeat |
| 4237 |
|
top := top + item.offsetTop; |
| 4238 |
|
item := item.offsetParent; |
| 4239 |
|
until AnsiCompareText(item.tagName, 'body' ) = 0; |
| 4240 |
|
|
| 4241 |
|
OleVariant(activeBrower.Document as IHTMLDocument2).body.scrollTop := top; |
| 4242 |
|
except |
| 4243 |
|
end; |
| 4244 |
|
end; |
| 4245 |
|
end; |
| 4246 |
|
|
| 4247 |
|
procedure TGikoForm.BrowserMovement(const AName: string); |
| 4248 |
var |
var |
| 4249 |
top: Integer; |
top: Integer; |
| 4250 |
item: OleVariant; |
item: OleVariant; |
| 4251 |
nm: OleVariant; |
nm: OleVariant; |
| 4252 |
|
activeBrower :TWebBrowser; |
| 4253 |
begin |
begin |
| 4254 |
// OleVariant(Browser.Document).parentWindow.location.hash := AName; |
// OleVariant(Browser.Document).parentWindow.location.hash := AName; |
| 4255 |
{ |
{ |
| 4256 |
while (Browser.ReadyState <> READYSTATE_COMPLETE) and |
while (Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 4257 |
(Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
(Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 4258 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 4259 |
end; |
end; |
| 4260 |
} |
} |
| 4261 |
// Access Violation が起きる事があるので今後要チェック |
// Access Violation が起きる事があるので今後要チェック |
| 4262 |
try |
if(BrowserTab.Tabs.Count > 0) and (BrowserTab.TabIndex >= 0) then begin |
| 4263 |
top := 0; |
activeBrower := FActiveContent.Browser; |
| 4264 |
nm := AName; |
try |
| 4265 |
item := OleVariant( Browser.Document as IHTMLDocument2).anchors.item(nm); |
top := 0; |
| 4266 |
repeat |
nm := AName; |
| 4267 |
top := top + item.offsetTop; |
item := OleVariant( activeBrower.Document as IHTMLDocument2).anchors.item(nm); |
| 4268 |
item := item.offsetParent; |
repeat |
| 4269 |
until AnsiCompareText(item.tagName, 'body' ) = 0; |
top := top + item.offsetTop; |
| 4270 |
|
item := item.offsetParent; |
| 4271 |
|
until AnsiCompareText(item.tagName, 'body' ) = 0; |
| 4272 |
|
|
| 4273 |
OleVariant(Browser.Document as IHTMLDocument2).body.scrollTop := top; |
OleVariant(activeBrower.Document as IHTMLDocument2).body.scrollTop := top; |
| 4274 |
except |
except |
| 4275 |
|
end; |
| 4276 |
end; |
end; |
| 4277 |
end; |
end; |
| 4278 |
|
|
| 5063 |
if FIsMinimize = mtMinimized then begin |
if FIsMinimize = mtMinimized then begin |
| 5064 |
if FActiveContent <> nil then begin |
if FActiveContent <> nil then begin |
| 5065 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 5066 |
doc := Browser.Document; |
doc := Idispatch( olevariant(FActiveContent.Browser.ControlInterface).Document) as IHTMLDocument2; |
| 5067 |
doc.Body.ScrollTop := FActiveContent.ScrollTop; |
doc.Body.ScrollTop := FActiveContent.Thread.ScrollTop; |
| 5068 |
FIsMinimize := mtNone; |
FIsMinimize := mtNone; |
| 5069 |
end; |
end; |
| 5070 |
end; |
end; |
| 5209 |
List.Free; |
List.Free; |
| 5210 |
end; |
end; |
| 5211 |
end; |
end; |
| 5212 |
|
procedure TGikoForm.DeleteTab(BrowserRecord: TBrowserRecord); |
| 5213 |
|
var |
| 5214 |
|
i: Integer; |
| 5215 |
|
doc: Variant; |
| 5216 |
|
begin |
| 5217 |
|
FTabHintIndex := -1; |
| 5218 |
|
for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
| 5219 |
|
if TBrowserRecord(BrowserTab.Tabs.Objects[i]) = BrowserRecord then begin |
| 5220 |
|
BrowserTab.Tabs.BeginUpdate; |
| 5221 |
|
try |
| 5222 |
|
doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
| 5223 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := doc.Body.ScrollTop; |
| 5224 |
|
except |
| 5225 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0; |
| 5226 |
|
end; |
| 5227 |
|
if( FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i]) ) then |
| 5228 |
|
FActiveContent := nil; |
| 5229 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 5230 |
|
BrowserTab.Tabs.Delete(i); |
| 5231 |
|
if i > (BrowserTab.Tabs.Count - 1) then |
| 5232 |
|
BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1 |
| 5233 |
|
else |
| 5234 |
|
BrowserTab.TabIndex := i; |
| 5235 |
|
if BrowserTab.Tabs.Count = 0 then begin |
| 5236 |
|
BrowserNullTab.Thread := nil; |
| 5237 |
|
end; |
| 5238 |
|
BrowserTab.Tabs.EndUpdate; |
| 5239 |
|
BrowserTab.OnChange(nil); |
| 5240 |
|
Exit; |
| 5241 |
|
end; |
| 5242 |
|
end; |
| 5243 |
|
end; |
| 5244 |
procedure TGikoForm.DeleteTab(ThreadItem: TThreadItem); |
procedure TGikoForm.DeleteTab(ThreadItem: TThreadItem); |
| 5245 |
var |
var |
| 5246 |
i: Integer; |
i: Integer; |
| 5247 |
|
doc: Variant; |
| 5248 |
begin |
begin |
| 5249 |
FTabHintIndex := -1; |
FTabHintIndex := -1; |
| 5250 |
for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
for i := 0 to BrowserTab.Tabs.Count - 1 do begin |
| 5251 |
if TThreadItem(BrowserTab.Tabs.Objects[i]) = ThreadItem then begin |
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin |
| 5252 |
|
BrowserTab.Tabs.BeginUpdate; |
| 5253 |
|
try |
| 5254 |
|
doc := TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser.Document; |
| 5255 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := doc.Body.ScrollTop; |
| 5256 |
|
except |
| 5257 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0; |
| 5258 |
|
end; |
| 5259 |
|
if(FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i])) then |
| 5260 |
|
FActiveContent := nil; |
| 5261 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 5262 |
BrowserTab.Tabs.Delete(i); |
BrowserTab.Tabs.Delete(i); |
| 5263 |
if i > (BrowserTab.Tabs.Count - 1) then |
if i > (BrowserTab.Tabs.Count - 1) then |
| 5264 |
BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1 |
BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1 |
| 5265 |
else |
else |
| 5266 |
BrowserTab.TabIndex := i; |
BrowserTab.TabIndex := i; |
| 5267 |
if BrowserTab.Tabs.Count = 0 then |
if BrowserTab.Tabs.Count = 0 then begin |
| 5268 |
SetContent(nil) |
BrowserNullTab.Thread := nil; |
| 5269 |
else if BrowserTab.TabIndex <> -1 then |
end; |
| 5270 |
SetContent(TThreadItem(BrowserTab.Tabs.Objects[BrowserTab.TabIndex])); |
BrowserTab.Tabs.EndUpdate; |
| 5271 |
|
BrowserTab.OnChange(nil); |
| 5272 |
Exit; |
Exit; |
| 5273 |
end; |
end; |
| 5274 |
end; |
end; |
| 5278 |
var |
var |
| 5279 |
No: Integer; |
No: Integer; |
| 5280 |
ThreadItem: TThreadItem; |
ThreadItem: TThreadItem; |
|
sTitle: string; |
|
|
ScrollTop: Integer; |
|
|
doc: Variant; |
|
| 5281 |
begin |
begin |
| 5282 |
No := KokoPopupMenu.Tag; |
No := KokoPopupMenu.Tag; |
| 5283 |
if No = 0 then Exit; |
if No = 0 then Exit; |
| 5284 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 5285 |
if ThreadItem = nil then Exit; |
if ThreadItem = nil then Exit; |
| 5286 |
ThreadItem.Kokomade := No; |
ThreadItem.Kokomade := No; |
| 5287 |
doc := Browser.Document; |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).Body.ScrollTop; |
| 5288 |
ScrollTop := doc.Body.ScrollTop; |
FActiveContent.FRepaint := true; |
| 5289 |
|
InsertBrowserTab(FActiveContent.Thread, true); |
|
GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
|
|
// HtmlName := GikoSys.CreateHTML(ThreadItem, sTitle) + '#koko'; |
|
|
// Flags := 2; |
|
|
// Browser.Navigate(HtmlName, Flags); |
|
|
// Sleep(10); |
|
| 5290 |
Application.ProcessMessages; |
Application.ProcessMessages; |
|
doc.Body.ScrollTop := ScrollTop; |
|
| 5291 |
end; |
end; |
| 5292 |
|
|
| 5293 |
procedure TGikoForm.ZenbuActionExecute(Sender: TObject); |
procedure TGikoForm.ZenbuActionExecute(Sender: TObject); |
| 5294 |
var |
var |
| 5295 |
ThreadItem: TThreadItem; |
ThreadItem: TThreadItem; |
|
sTitle: string; |
|
|
ScrollTop: Integer; |
|
|
doc: Variant; |
|
| 5296 |
begin |
begin |
| 5297 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 5298 |
if ThreadItem = nil then Exit; |
if ThreadItem = nil then Exit; |
| 5299 |
ThreadItem.Kokomade := -1; |
ThreadItem.Kokomade := -1; |
| 5300 |
doc := Browser.Document; |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).Body.ScrollTop; |
| 5301 |
ScrollTop := doc.Body.ScrollTop; |
FActiveContent.FRepaint := true; |
| 5302 |
GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
InsertBrowserTab(FActiveContent.Thread, true); |
|
// HtmlName := GikoSys.CreateHTML(ThreadItem, sTitle) + '#koko'; |
|
|
// Flags := 2; |
|
|
// Browser.Navigate(HtmlName, Flags); |
|
|
// Sleep(10); |
|
| 5303 |
Application.ProcessMessages; |
Application.ProcessMessages; |
|
doc.Body.ScrollTop := ScrollTop; |
|
| 5304 |
end; |
end; |
| 5305 |
|
|
| 5306 |
function TGikoForm.Hook(var Message: TMessage): Boolean; |
function TGikoForm.Hook(var Message: TMessage): Boolean; |
| 5492 |
procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject); |
procedure TGikoForm.BrowserTabCloseActionExecute(Sender: TObject); |
| 5493 |
var |
var |
| 5494 |
idx: Integer; |
idx: Integer; |
| 5495 |
ThreadItem: TThreadItem; |
// ThreadItem: TThreadItem; |
| 5496 |
begin |
begin |
| 5497 |
idx := BrowserTab.TabIndex; |
idx := BrowserTab.TabIndex; |
| 5498 |
if idx <> -1 then begin |
if idx <> -1 then begin |
| 5499 |
if BrowserTab.Tabs.Objects[idx] <> nil then begin |
if BrowserTab.Tabs.Objects[idx] <> nil then begin |
| 5500 |
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
//ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
| 5501 |
DeleteTab(ThreadItem); |
DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 5502 |
end; |
end; |
| 5503 |
end; |
end; |
| 5504 |
end; |
end; |
| 5506 |
procedure TGikoForm.NotSelectTabCloseActionExecute(Sender: TObject); |
procedure TGikoForm.NotSelectTabCloseActionExecute(Sender: TObject); |
| 5507 |
var |
var |
| 5508 |
i: Integer; |
i: Integer; |
| 5509 |
|
idx: Integer; |
| 5510 |
begin |
begin |
| 5511 |
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin |
idx := BrowserTab.TabIndex; |
| 5512 |
if BrowserTab.TabIndex <> i then begin |
if idx = -1 then Exit; |
| 5513 |
|
BrowserTab.Tabs.BeginUpdate; |
| 5514 |
|
for i := BrowserTab.Tabs.Count - 1 downto BrowserTab.TabIndex + 1 do begin |
| 5515 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 5516 |
|
BrowserTab.Tabs.Delete(i); |
| 5517 |
|
end; |
| 5518 |
|
if idx > 0 then begin |
| 5519 |
|
for i := BrowserTab.TabIndex - 1 downto 0 do begin |
| 5520 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 5521 |
BrowserTab.Tabs.Delete(i); |
BrowserTab.Tabs.Delete(i); |
| 5522 |
end; |
end; |
| 5523 |
end; |
end; |
| 5524 |
|
BrowserTab.Tabs.EndUpdate; |
| 5525 |
end; |
end; |
| 5526 |
|
|
| 5527 |
procedure TGikoForm.AllTabCloseActionExecute(Sender: TObject); |
procedure TGikoForm.AllTabCloseActionExecute(Sender: TObject); |
| 5528 |
var |
var |
| 5529 |
i: Integer; |
i: Integer; |
| 5530 |
begin |
begin |
| 5531 |
SetContent(nil); |
//SetContent(BrowserNullTab); |
| 5532 |
|
FActiveContent := nil; |
| 5533 |
|
BrowserNullTab.Thread := nil; |
| 5534 |
BrowserTab.OnChange := nil; |
BrowserTab.OnChange := nil; |
| 5535 |
for i := BrowserTab.Tabs.Count - 1 downto 0 do |
BrowserTab.Tabs.BeginUpdate; |
| 5536 |
BrowserTab.Tabs.Delete(i); |
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin |
| 5537 |
|
TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free; |
| 5538 |
|
end; |
| 5539 |
|
BrowserTab.Tabs.Clear; |
| 5540 |
|
BrowserTab.Tabs.EndUpdate; |
| 5541 |
BrowserTab.OnChange := BrowserTabChange; |
BrowserTab.OnChange := BrowserTabChange; |
| 5542 |
|
SetContent(BrowserNullTab); |
| 5543 |
end; |
end; |
| 5544 |
|
|
| 5545 |
procedure TGikoForm.TreeSelectBoradReloadExecute(Sender: TObject); |
procedure TGikoForm.TreeSelectBoradReloadExecute(Sender: TObject); |
| 5832 |
BrowserTab.Hint := ''; |
BrowserTab.Hint := ''; |
| 5833 |
idx := BrowserTab.TabIndex; |
idx := BrowserTab.TabIndex; |
| 5834 |
if idx = -1 then begin |
if idx = -1 then begin |
| 5835 |
|
BrowserNullTab.Thread := nil; |
| 5836 |
SetContent(BrowserNullTab); |
SetContent(BrowserNullTab); |
| 5837 |
end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TThreadItem) then begin |
|
| 5838 |
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin |
| 5839 |
SetContent(ThreadItem); |
ThreadItem := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Thread; |
| 5840 |
|
GikoSys.OnlyAHundredRes := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred; |
| 5841 |
|
OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred; |
| 5842 |
|
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 5843 |
|
|
| 5844 |
if GikoSys.Setting.URLDisplay then |
if GikoSys.Setting.URLDisplay then |
| 5845 |
AddressComboBox.Text := ThreadItem.URL; |
AddressComboBox.Text := ThreadItem.URL; |
| 5846 |
end; |
end; |
| 5851 |
if GikoSys.Setting.ListWidthState = glsMin then begin |
if GikoSys.Setting.ListWidthState = glsMin then begin |
| 5852 |
BrowserMaxAction.Execute; |
BrowserMaxAction.Execute; |
| 5853 |
if GikoForm.Visible then |
if GikoForm.Visible then |
| 5854 |
Browser.SetFocus; |
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 5855 |
end; |
end; |
| 5856 |
end else begin |
end else begin |
| 5857 |
if GikoSys.Setting.ListHeightState = glsMin then begin |
if GikoSys.Setting.ListHeightState = glsMin then begin |
| 5858 |
BrowserMaxAction.Execute; |
BrowserMaxAction.Execute; |
| 5859 |
if GikoForm.Visible then |
if GikoForm.Visible then |
| 5860 |
Browser.SetFocus; |
SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 5861 |
end; |
end; |
| 5862 |
end; |
end; |
| 5863 |
end; |
end; |
| 5865 |
|
|
| 5866 |
end; |
end; |
| 5867 |
|
|
|
procedure TGikoForm.BrowserTabClick(Sender: TObject); |
|
|
var |
|
|
idx: Integer; |
|
|
ThreadItem: TThreadItem; |
|
|
begin |
|
|
// if NewTab = -1 then |
|
|
FTabHintIndex := -1; |
|
|
BrowserTab.Hint := ''; |
|
|
idx := BrowserTab.TabIndex; |
|
|
if idx = -1 then |
|
|
SetContent(BrowserNullTab) |
|
|
else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TThreadItem) then begin |
|
|
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
|
|
SetContent(ThreadItem); |
|
|
if GikoSys.Setting.URLDisplay then |
|
|
AddressComboBox.Text := ThreadItem.URL; |
|
|
end; |
|
|
end; |
|
| 5868 |
|
|
| 5869 |
procedure TGikoForm.BrowserTabMouseDown(Sender: TObject; |
procedure TGikoForm.BrowserTabMouseDown(Sender: TObject; |
| 5870 |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
| 5882 |
idx := BrowserTab.IndexOfTabAt(p.X, p.Y); |
idx := BrowserTab.IndexOfTabAt(p.X, p.Y); |
| 5883 |
if idx <> -1 then begin |
if idx <> -1 then begin |
| 5884 |
OldIndex := BrowserTab.TabIndex; |
OldIndex := BrowserTab.TabIndex; |
| 5885 |
BrowserTab.Tabs.Delete(idx); |
DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 5886 |
if idx = OldIndex then begin |
if idx = OldIndex then begin |
| 5887 |
if BrowserTab.Tabs.Count > idx then |
if BrowserTab.Tabs.Count > idx then |
| 5888 |
BrowserTab.TabIndex := idx |
BrowserTab.TabIndex := idx |
| 5891 |
else if BrowserTab.Tabs.Count > 0 then |
else if BrowserTab.Tabs.Count > 0 then |
| 5892 |
BrowserTab.TabIndex := 0; |
BrowserTab.TabIndex := 0; |
| 5893 |
BrowserTab.OnChange(nil); |
BrowserTab.OnChange(nil); |
| 5894 |
|
|
| 5895 |
end; |
end; |
| 5896 |
end; |
end; |
| 5897 |
//end else if Button = mbRight then begin |
//end else if Button = mbRight then begin |
| 6017 |
|
|
| 6018 |
if (FTabHintIndex <> TabIdx) and (TabIdx <> -1) then begin |
if (FTabHintIndex <> TabIdx) and (TabIdx <> -1) then begin |
| 6019 |
Application.CancelHint; |
Application.CancelHint; |
| 6020 |
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[TabIdx]); |
ThreadItem := TBrowserRecord(BrowserTab.Tabs.Objects[TabIdx]).Thread; |
| 6021 |
if ThreadItem.Title <> BrowserTab.Tabs[TabIdx] then begin |
if ThreadItem.Title <> BrowserTab.Tabs[TabIdx] then begin |
| 6022 |
BrowserTab.Hint := ThreadItem.Title; |
BrowserTab.Hint := ThreadItem.Title; |
| 6023 |
Application.ShowHint := True; |
Application.ShowHint := True; |
| 6034 |
const pDisp: IDispatch; var URL: OleVariant); |
const pDisp: IDispatch; var URL: OleVariant); |
| 6035 |
var |
var |
| 6036 |
FDispHtmlDocument: DispHTMLDocument; |
FDispHtmlDocument: DispHTMLDocument; |
| 6037 |
|
BrowserRecord :TBrowserRecord; |
| 6038 |
|
i :Integer; |
| 6039 |
begin |
begin |
| 6040 |
// AddMessageList('DocumentComplete', nil); |
// AddMessageList('DocumentComplete', nil); |
| 6041 |
FBrowserComplete := True; |
if TObject(Sender) is TWebBrowser then begin |
| 6042 |
if FEvent <> nil then |
BrowserRecord := nil; |
| 6043 |
FEvent.Free; |
for i := BrowserTab.Tabs.Count - 1 downto 0 do begin |
| 6044 |
FDispHtmlDocument := Browser.Document as DispHTMLDocument; |
if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(Sender) then begin |
| 6045 |
FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2); |
BrowserRecord := TBrowserRecord(BrowserTab.Tabs.Objects[i]); |
| 6046 |
FEvent.OnContextMenu := OnDocumentContextMenu; |
break; |
| 6047 |
|
end; |
| 6048 |
|
end; |
| 6049 |
|
if BrowserRecord <> nil then begin |
| 6050 |
|
FBrowserComplete := True; |
| 6051 |
|
if BrowserRecord.FEvent <> nil then |
| 6052 |
|
BrowserRecord.FEvent.Free; |
| 6053 |
|
FDispHtmlDocument := BrowserRecord.Browser.Document as DispHTMLDocument; |
| 6054 |
|
BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2); |
| 6055 |
|
BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu; |
| 6056 |
|
end; |
| 6057 |
|
end; |
| 6058 |
end; |
end; |
| 6059 |
|
|
| 6060 |
procedure TGikoForm.SelectReservActionUpdate(Sender: TObject); |
procedure TGikoForm.SelectReservActionUpdate(Sender: TObject); |
| 6227 |
AddMessageList('ログアウトしました', nil, gmiOK); |
AddMessageList('ログアウトしました', nil, gmiOK); |
| 6228 |
LoginAction.Caption := 'ログイン(&L)'; |
LoginAction.Caption := 'ログイン(&L)'; |
| 6229 |
end else begin |
end else begin |
| 6230 |
|
GikoSys.Dolib.DolibURL := GikoSys.Setting.DolibURL; |
| 6231 |
TmpCursor := Screen.Cursor; |
TmpCursor := Screen.Cursor; |
| 6232 |
Screen.Cursor := crHourGlass; |
Screen.Cursor := crHourGlass; |
| 6233 |
try |
try |
| 6423 |
if MsgBox(Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2) <> IDYES then |
if MsgBox(Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONQUESTION or MB_DEFBUTTON2) <> IDYES then |
| 6424 |
Exit; |
Exit; |
| 6425 |
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
ThreadItem := TThreadItem(BrowserTab.Tabs.Objects[idx]); |
| 6426 |
DeleteTab(ThreadItem); |
DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx])); |
| 6427 |
ThreadItem.DeleteLogFile; |
ThreadItem.DeleteLogFile; |
| 6428 |
if ThreadItem.ParentBoard = FActiveList then |
if ThreadItem.ParentBoard = FActiveList then |
| 6429 |
ListView.Refresh; |
ListView.Refresh; |
| 7550 |
FIsIgnoreResize := oldIgnoreResize; |
FIsIgnoreResize := oldIgnoreResize; |
| 7551 |
end; |
end; |
| 7552 |
end; |
end; |
|
procedure TGikoForm.ClearLinkBar; |
|
|
var |
|
|
i: Integer; |
|
|
begin |
|
|
MainCoolBar.Bands.BeginUpdate; |
|
|
try |
|
|
if LinkBarPopupMenu.Items.Count > 0 then |
|
|
LinkBarPopupMenu.Items.Clear; |
|
|
for i := LinkToolBar.ButtonCount - 1 downto 0 do |
|
|
//LinkToolBar.RemoveControl(LinkToolBar.Buttons[i]); |
|
|
LinkToolBar.Buttons[i].Free; |
|
|
finally |
|
|
MainCoolBar.Bands.EndUpdate; |
|
|
end; |
|
| 7553 |
|
|
|
end; |
|
| 7554 |
procedure TGikoForm.FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); |
procedure TGikoForm.FavoriteDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); |
| 7555 |
var |
var |
| 7556 |
Node: TTreeNode; |
Node: TTreeNode; |
| 8307 |
// スレッドの再描画 |
// スレッドの再描画 |
| 8308 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8309 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8310 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8311 |
end; |
end; |
| 8312 |
end else if Length( FSelectResWord ) > 0 then begin |
end else if Length( FSelectResWord ) > 0 then begin |
| 8313 |
// ボタンの更新 |
// ボタンの更新 |
| 8355 |
// スレッドを再描画 |
// スレッドを再描画 |
| 8356 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8357 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8358 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8359 |
end; |
end; |
| 8360 |
end; |
end; |
| 8361 |
|
|
| 8373 |
end else begin |
end else begin |
| 8374 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8375 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8376 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8377 |
end; |
end; |
| 8378 |
|
|
| 8379 |
end; |
end; |
| 8392 |
StatusBarResize(Sender); |
StatusBarResize(Sender); |
| 8393 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8394 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8395 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8396 |
end; |
end; |
| 8397 |
|
|
| 8398 |
end; |
end; |
| 8411 |
StatusBarResize(Sender); |
StatusBarResize(Sender); |
| 8412 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8413 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8414 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8415 |
end; |
end; |
| 8416 |
|
|
| 8417 |
end; |
end; |
| 8477 |
GikoSys.FAbon.AddIndividualAbon(KokoPopupMenu.Tag,1); |
GikoSys.FAbon.AddIndividualAbon(KokoPopupMenu.Tag,1); |
| 8478 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8479 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8480 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8481 |
end; |
end; |
| 8482 |
//個別あぼーん「透明」 |
//個別あぼーん「透明」 |
| 8483 |
procedure TGikoForm.IndividualAbon2Click(Sender: TObject); |
procedure TGikoForm.IndividualAbon2Click(Sender: TObject); |
| 8487 |
GikoSys.FAbon.AddIndividualAbon(KokoPopupMenu.Tag,0); |
GikoSys.FAbon.AddIndividualAbon(KokoPopupMenu.Tag,0); |
| 8488 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8489 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8490 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8491 |
end; |
end; |
| 8492 |
//個別あぼーん解除() |
//個別あぼーん解除() |
| 8493 |
procedure TGikoForm.AntiIndividualAbonClick(Sender: TObject); |
procedure TGikoForm.AntiIndividualAbonClick(Sender: TObject); |
| 8499 |
GikoSys.FAbon.DeleteIndividualAbon(KokoPopupMenu.Tag); |
GikoSys.FAbon.DeleteIndividualAbon(KokoPopupMenu.Tag); |
| 8500 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8501 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8502 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8503 |
end else begin |
end else begin |
| 8504 |
msg := 'このスレッドでは個別あぼ〜んを行ってません'; |
msg := 'このスレッドでは個別あぼ〜んを行ってません'; |
| 8505 |
MsgBox(Handle, msg, 'メッセージ', MB_OK); |
MsgBox(Handle, msg, 'メッセージ', MB_OK); |
| 8524 |
end; |
end; |
| 8525 |
ThreadItem := GetActiveContent; |
ThreadItem := GetActiveContent; |
| 8526 |
if ThreadItem <> nil then |
if ThreadItem <> nil then |
| 8527 |
SetContent( ThreadItem ); |
InsertBrowserTab( ThreadItem, True ); |
| 8528 |
end else begin |
end else begin |
| 8529 |
msg := 'このスレッドでは個別あぼ〜んを行ってません'; |
msg := 'このスレッドでは個別あぼ〜んを行ってません'; |
| 8530 |
MsgBox(Handle, msg, 'メッセージ', MB_OK); |
MsgBox(Handle, msg, 'メッセージ', MB_OK); |
| 9299 |
end; |
end; |
| 9300 |
|
|
| 9301 |
procedure TGikoForm.OnlyAHundredResExecute(Sender: TObject); |
procedure TGikoForm.OnlyAHundredResExecute(Sender: TObject); |
|
var |
|
|
ThreadItem : TThreadItem; |
|
| 9302 |
begin |
begin |
| 9303 |
GikoSys.OnlyAHundredRes := OnlyAHundredRes.Checked; |
GikoSys.OnlyAHundredRes := OnlyAHundredRes.Checked; |
| 9304 |
ThreadItem := GetActiveContent; |
if FActiveContent <> nil then begin |
| 9305 |
if ThreadItem <> nil then |
SetContent(FActiveContent); |
| 9306 |
SetContent( ThreadItem ); |
end; |
| 9307 |
end; |
end; |
| 9308 |
|
|
| 9309 |
procedure TGikoForm.FavoriteTreeViewEndDrag(Sender, Target: TObject; X, |
procedure TGikoForm.FavoriteTreeViewEndDrag(Sender, Target: TObject; X, |
| 9543 |
begin |
begin |
| 9544 |
FIsMinimize := mtMinimizing; |
FIsMinimize := mtMinimizing; |
| 9545 |
if FActiveContent <> nil then |
if FActiveContent <> nil then |
| 9546 |
FActiveContent.ScrollTop := OleVariant(IHTMLDocument2(Browser.Document)).Body.ScrollTop; |
FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).Body.ScrollTop; |
| 9547 |
PostMessage( Handle, USER_MINIMIZED, 0, 0 ); |
PostMessage( Handle, USER_MINIMIZED, 0, 0 ); |
| 9548 |
end; |
end; |
| 9549 |
|
|
| 9925 |
(abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin |
(abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin |
| 9926 |
FavoriteClick( TObject( FavoriteTreeView.Selected ) ); |
FavoriteClick( TObject( FavoriteTreeView.Selected ) ); |
| 9927 |
end; |
end; |
| 9928 |
|
|
| 9929 |
|
end; |
| 9930 |
|
|
| 9931 |
|
destructor TBrowserRecord.Destroy; |
| 9932 |
|
var |
| 9933 |
|
doc :OleVariant; |
| 9934 |
|
begin |
| 9935 |
|
if Self.FEvent <> nil then |
| 9936 |
|
Self.FEvent.Free; |
| 9937 |
|
if Self.FBrowser <> nil then begin |
| 9938 |
|
if Self.Thread <> nil then begin |
| 9939 |
|
doc := Idispatch( olevariant(Self.FBrowser.ControlInterface).Document) as IHTMLDocument2; |
| 9940 |
|
Self.Thread.ScrollTop := doc.Body.ScrollTop; |
| 9941 |
|
end; |
| 9942 |
|
Self.FBrowser.Free; |
| 9943 |
|
end; |
| 9944 |
|
end; |
| 9945 |
|
|
| 9946 |
|
procedure TGikoForm.ThreadPanelResize(Sender: TObject); |
| 9947 |
|
var |
| 9948 |
|
idx : Integer; |
| 9949 |
|
rec : TBrowserRecord; |
| 9950 |
|
begin |
| 9951 |
|
idx := BrowserTab.TabIndex; |
| 9952 |
|
if idx >= 0 then begin |
| 9953 |
|
if BrowserTab.Tabs.Objects[ idx ] is TBrowserRecord then begin |
| 9954 |
|
rec := TBrowserRecord( BrowserTab.Tabs.Objects[ idx ] ); |
| 9955 |
|
SetWindowPos( rec.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER); |
| 9956 |
|
end; |
| 9957 |
|
end; |
| 9958 |
|
end; |
| 9959 |
|
|
| 9960 |
|
procedure TGikoForm.OnlyAHundredResUpdate(Sender: TObject); |
| 9961 |
|
begin |
| 9962 |
|
OnlyAHundredRes.Enabled := (GetActiveContent <> nil) ; |
| 9963 |
end; |
end; |
| 9964 |
|
|
| 9965 |
initialization |
initialization |