?? umain.pas
字號:
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, ExtCtrls, OleCtrls,
SHDocVw, EmbeddedWB, StdCtrls, ImgList, ActnList,
JvExComCtrls, JvStatusBar,uFeed, JvListView,MSXML2_TLB,
uLocalRSS,uOpml,WinHTTP, dxBar, JvExExtCtrls, JvNetscapeSplitter,
cxInplaceContainer, cxTL, cxControls, cxStyles,cxGraphics, cxEdit,
cxEditRepositoryItems,cxImageComboBox, XPMenu,uFavorite,Buttons,
CoolTrayIcon, JvComponent, JvBaseDlg, JvDesktopAlert, XPMan;
type
TMainWindow = class(TForm)
MainMenu1: TMainMenu;
f1: TMenuItem;
EmbeddedWB1: TEmbeddedWB;
ActionListBrowser: TActionList;
actBack: TAction;
actForward: TAction;
actGo: TAction;
ActionList1: TActionList;
actNew: TAction;
actExit: TAction;
actOption: TAction;
actAbout: TAction;
New1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
N2: TMenuItem;
Option1: TMenuItem;
N3: TMenuItem;
About1: TMenuItem;
StaImg: TImage;
XPManifest1: TXPManifest;
JvStatusBar1: TJvStatusBar;
StaImgInernet: TImage;
ProgressBar: TProgressBar;
PMFeed: TPopupMenu;
u1: TMenuItem;
TimerAutoReaded: TTimer;
PMRssItem: TPopupMenu;
T1: TMenuItem;
d1: TMenuItem;
ImageList1: TImageList;
dxBarManager1: TdxBarManager;
PanelLeft: TPanel;
PanelRight: TPanel;
JvNetscapeSplitter1: TJvNetscapeSplitter;
PanelR_TOP: TPanel;
PanelR_Bottom: TPanel;
JvNetscapeSplitter2: TJvNetscapeSplitter;
dxBarDockControl1: TdxBarDockControl;
AddressBox: TdxBarCombo;
BarBtnBack: TdxBarButton;
BarBtnForward: TdxBarButton;
BarBtnRefresh: TdxBarButton;
BarBtnStop: TdxBarButton;
BarCmbStyle: TdxBarCombo;
actStop: TAction;
actRefresh: TAction;
P1: TMenuItem;
PMFolder: TPopupMenu;
cxStyleRepository1: TcxStyleRepository;
PerviewStyle: TcxStyle;
ImageListOutline: TImageList;
BarBtnShowPerview: TdxBarButton;
M1: TMenuItem;
m2: TMenuItem;
M3: TMenuItem;
actMakeRead: TAction;
actMakeUnRead: TAction;
actDeleteItem: TAction;
BoldStyle: TcxStyle;
NormalStyle: TcxStyle;
BarBtnPreUnread: TdxBarButton;
BarBtnNextUnread: TdxBarButton;
BarBtnPre: TdxBarButton;
BarBtnNext: TdxBarButton;
actPreUnread: TAction;
actNextUnread: TAction;
actPreview: TAction;
actNext: TAction;
ImageMain: TImageList;
FeedTree: TcxTreeList;
ChannelCol_Title: TcxTreeListColumn;
ChannelCol_Unread: TcxTreeListColumn;
ChannelCol_Readed: TcxTreeListColumn;
PMChannel: TPopupMenu;
N5: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
D2: TMenuItem;
N9: TMenuItem;
R1: TMenuItem;
r2: TMenuItem;
N10: TMenuItem;
PreviewUnread1: TMenuItem;
NextUnread1: TMenuItem;
Preview1: TMenuItem;
Next1: TMenuItem;
N11: TMenuItem;
Deleteitems1: TMenuItem;
N12: TMenuItem;
actSelectAll: TAction;
SelectAll1: TMenuItem;
actNewFolder: TAction;
N13: TMenuItem;
N14: TMenuItem;
M4: TMenuItem;
dxBarDockControl3: TdxBarDockControl;
Panel2: TPanel;
dxBarButton1: TdxBarButton;
dxBarButton2: TdxBarButton;
actMoveUp: TAction;
actMoveDown: TAction;
dxBarButton3: TdxBarButton;
dxBarButton4: TdxBarButton;
actDeleteChannel: TAction;
actMoveTo: TAction;
MoveTo1: TMenuItem;
MoveTo2: TMenuItem;
cxEditRepository1: TcxEditRepository;
FlagImageComboBox: TcxEditRepositoryImageComboBoxItem;
PMFlag: TPopupMenu;
C2: TMenuItem;
N17: TMenuItem;
MFlagNull: TMenuItem;
MFlag: TMenuItem;
N15: TMenuItem;
actReName: TAction;
ActUpdate: TAction;
N4: TMenuItem;
PMFav: TPopupMenu;
N6: TMenuItem;
PMFavFolder: TPopupMenu;
PMFavItem: TPopupMenu;
N16: TMenuItem;
R3: TMenuItem;
N18: TMenuItem;
D3: TMenuItem;
r4: TMenuItem;
D4: TMenuItem;
N19: TMenuItem;
M5: TMenuItem;
NewFavoriteItem1: TMenuItem;
S1: TMenuItem;
actShowError: TAction;
dxBarButton6: TdxBarButton;
cxTreeList1: TcxTreeList;
Col_read: TcxTreeListColumn;
Col_Flag: TcxTreeListColumn;
Col_Title: TcxTreeListColumn;
Col_Author: TcxTreeListColumn;
Col_PublishDate: TcxTreeListColumn;
Col_Categry: TcxTreeListColumn;
Col_Description: TcxTreeListColumn;
Col_ReceivedDate: TcxTreeListColumn;
ClearItems1: TMenuItem;
dxBarButton7: TdxBarButton;
PMSearch: TPopupMenu;
S2: TMenuItem;
FilterBox: TdxBarCombo;
DateFilterBox: TdxBarCombo;
S3: TMenuItem;
actStopRefresh: TAction;
Update1: TMenuItem;
TrayIcon: TCoolTrayIcon;
ImageTray: TImageList;
PopupMenu1: TPopupMenu;
S4: TMenuItem;
R5: TMenuItem;
E1: TMenuItem;
dxBarButton5: TdxBarButton;
dxBarButton8: TdxBarButton;
dxBarButton9: TdxBarButton;
H1: TMenuItem;
E2: TMenuItem;
V1: TMenuItem;
N20: TMenuItem;
Update2: TMenuItem;
Stop1: TMenuItem;
N21: TMenuItem;
Delete1: TMenuItem;
Showerror1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure actBackEecute(Sender: TObject);
procedure actForwardExecute(Sender: TObject);
procedure actGoExecute(Sender: TObject);
procedure actBackUpdate(Sender: TObject);
procedure actForwardUpdate(Sender: TObject);
procedure EmbeddedWB1StatusTextChange(Sender: TObject;
const Text: WideString);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure EmbeddedWB1NewWindow2(Sender: TObject; var ppDisp: IDispatch;
var Cancel: WordBool);
procedure actExitExecute(Sender: TObject);
procedure actOptionExecute(Sender: TObject);
procedure actAboutExecute(Sender: TObject);
procedure EmbeddedWB1ProgressChange(Sender: TObject; Progress,
ProgressMax: Integer);
procedure JvStatusBar1Resize(Sender: TObject);
procedure TimerAutoReadedTimer(Sender: TObject);
procedure AddressBoxKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BarCmbStyleChange(Sender: TObject);
procedure EmbeddedWB1BeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
procedure EmbeddedWB1NavigateComplete2(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
procedure AddressBoxChange(Sender: TObject);
procedure actStopExecute(Sender: TObject);
procedure actStopUpdate(Sender: TObject);
procedure actRefreshExecute(Sender: TObject);
procedure actRefreshUpdate(Sender: TObject);
procedure P1Click(Sender: TObject);
procedure cxTreeList1DblClick(Sender: TObject);
procedure cxTreeList1CustomDrawCell(Sender: TObject;
ACanvas: TcxCanvas; AViewInfo: TcxTreeListEditCellViewInfo;
var ADone: Boolean);
procedure BarBtnShowPerviewClick(Sender: TObject);
procedure cxTreeList1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure actMakeReadExecute(Sender: TObject);
procedure actMakeUnReadExecute(Sender: TObject);
procedure actMakeReadUpdate(Sender: TObject);
procedure actMakeUnReadUpdate(Sender: TObject);
procedure actDeleteItemExecute(Sender: TObject);
procedure actDeleteItemUpdate(Sender: TObject);
procedure cxTreeList1Click(Sender: TObject);
procedure actPreviewExecute(Sender: TObject);
procedure actPreviewUpdate(Sender: TObject);
procedure actNextExecute(Sender: TObject);
procedure actNextUpdate(Sender: TObject);
procedure EmbeddedWB1ScriptError(Sender: TObject; ErrorLine,
ErrorCharacter, ErrorCode, ErrorMessage, ErrorUrl: String;
var ContinueScript, Showdialog: Boolean);
procedure LoadToTree(aNode:TcxTreeListNode;oln:TOutlineType);
procedure LoadFavToTree(aNode:TcxTreeListNode;oln:TOutlineType);
function GetRootNode(aNode:TcxTreeListNode):TcxTreeListNode;
procedure FeedTreeMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FeedTreeCustomDrawCell(Sender: TObject; ACanvas: TcxCanvas;
AViewInfo: TcxTreeListEditCellViewInfo; var ADone: Boolean);
procedure cxTreeList1Change(Sender: TObject);
procedure FeedTreeFocusedNodeChanged(Sender: TObject; APrevFocusedNode,
AFocusedNode: TcxTreeListNode);
procedure cxTreeList1SelectionChanged(Sender: TObject);
procedure actSelectAllExecute(Sender: TObject);
procedure actSelectAllUpdate(Sender: TObject);
procedure actPreUnreadExecute(Sender: TObject);
procedure actNextUnreadExecute(Sender: TObject);
procedure actNewFolderUpdate(Sender: TObject);
procedure actNewFolderExecute(Sender: TObject);
procedure M4Click(Sender: TObject);
procedure actMoveUpExecute(Sender: TObject);
procedure actMoveDownExecute(Sender: TObject);
procedure actMoveUpUpdate(Sender: TObject);
procedure actMoveDownUpdate(Sender: TObject);
procedure actDeleteChannelExecute(Sender: TObject);
procedure actDeleteChannelUpdate(Sender: TObject);
procedure actMoveToExecute(Sender: TObject);
procedure FeedTreeCollapsed(Sender: TObject; ANode: TcxTreeListNode);
procedure FeedTreeExpanded(Sender: TObject; ANode: TcxTreeListNode);
procedure C2Click(Sender: TObject);
procedure PMFlagPopup(Sender: TObject);
procedure actReNameExecute(Sender: TObject);
procedure actNewExecute(Sender: TObject);
procedure actNewUpdate(Sender: TObject);
procedure ActUpdateExecute(Sender: TObject);
procedure ActUpdateUpdate(Sender: TObject);
procedure actReNameUpdate(Sender: TObject);
procedure N19Click(Sender: TObject);
procedure r4Click(Sender: TObject);
procedure M5Click(Sender: TObject);
procedure actShowErrorUpdate(Sender: TObject);
procedure actShowErrorExecute(Sender: TObject);
procedure cxTreeList1CustomDrawPreview(Sender: TObject;
ACanvas: TcxCanvas; AViewInfo: TcxTreeListEditCellViewInfo;
var ADone: Boolean);
function EmbeddedWB1GetExternal(out ppDispatch: IDispatch): HRESULT;
procedure ClearItems1Click(Sender: TObject);
procedure dxBarButton6Click(Sender: TObject);
procedure S2Click(Sender: TObject);
procedure FilterBoxChange(Sender: TObject);
procedure actStopRefreshUpdate(Sender: TObject);
procedure actStopRefreshExecute(Sender: TObject);
procedure TrayIconDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure H1Click(Sender: TObject);
procedure R5Click(Sender: TObject);
procedure E2Click(Sender: TObject);
private
FirstShow,IsStartHidden:Boolean;
HistoryIndex: Integer;
HistoryList: TStringList;
ADBlockCount:Integer;
XSL,HTMLXml:IXMLDOMDocument2;
UpdateCombo:boolean;
AutoSetReaded:Boolean;
PrevUnreadNode,NextUnreadNode:TcxTreeListNode;
ClickX,ClickY:Integer;
procedure TranslateToolBarCustomize;
procedure FindAddress(Url:WideString);
Procedure ShowHtmlInBrowser( Const Html: WideString );
procedure ApplyStyle(Sender:TObject);
procedure RestoreWindowSettings;
procedure SaveWindowSettings;
procedure LoadToobarStatus;
procedure LoadTreeListSettings;
procedure SaveTreeListSettings;
procedure ReloadRssItems(AFocusedNode:TcxTreeListNode);
procedure ReloadFavRssItems(AFocusedNode:TcxTreeListNode);
procedure ShowFolderContent(AFocusedNode:TcxTreeListNode);
procedure MakeNewsPaper(AFocusedNode:TcxTreeListNode);
procedure OnProgress(Sender:TObject;Position,Max:integer);
function IsUnreadBOF:Boolean;
function IsUnreadEOF:Boolean;
procedure CalculateFolderReadedCount(aNode:TcxTreeListNode);
procedure DeleteChildrenNode(aNode:TcxTreeListNode);
procedure FlagMenuItemClick(Sender:TObject);
procedure UpdateWithChild(aNode:TcxTreeListNode);
procedure ExecSearch;
function ApplyFilter(AItem:TLocalRssItem):Boolean;
procedure DesktopAlterMessageClick(Sender:TObject);
{ Private declarations }
public
ExecPath:string;
FeedList:TFeed;
FavList:TFavorite;
Opml,FavOpml:TOpmlType;
FavoritesNode,ChannelNode,SearchNode,WatchNode:TcxTreeListNode;
procedure TranslateFormMain;
function AddFeed(parent:TcxTreeListNode;FeedTitle,XmlURL,Description,HtmlUrl,FileName:string):TFeedItem;
procedure LoadOPMLFile;
procedure LoadFavOPMLFile;
function NewFolder(DesNode:TcxTreeListNode;FolderName:string):TcxTreeListNode;
procedure RenameFolder(DesNode:TcxTreeListNode;FolderName:string);
function NewFavFolder(DesNode:TcxTreeListNode;FolderName:string):TcxTreeListNode;
procedure LoadFlags;
Procedure Event_UpdateProgress(Sender: TObject; const ContentType: string;
FileSize, BytesRead,PercentsDone: Integer);
procedure Event_UpdateDone(Sender: TObject; const ContentType: string; FileSize: Integer; Stream: TStream);
procedure Event_ShowDesktopAlert(ANode:TcxTreeListNode;AMessageText:string);
procedure Event_Error(Sender: TObject; ErrorStr: string);
procedure Event_ItemsChange(Sender: TObject);
procedure Event_FavItemsChange(Sender: TObject);
procedure Event_OnNewItem(Sender:TObject;Item:TLocalRssItem);
{ Public declarations }
end;
var
MainWindow: TMainWindow;
implementation
uses Comm,MProperties,uHTMLMessage,AboutDialog_FRM,uLanguage,Option_FRM,
uHtmlMessageDlg,XFunctions, AddNewFeed_Frm,FastStrings,uW3CDTF,uConstants,
ActiveX,uStyle,FeedProperty_Frm,FastStringFuncs,IniFiles,cxCustomData,
ChooseFolder_Frm,newFolder_Frm, flag_Frm,uFlagBase,
Error_Frm,MyExternal, search_Frm,ExportOPML_Frm;
{$R *.dfm}
procedure TMainWindow.TranslateFormMain;
begin
SetCaption('RssNavigator');
TranslateToolBarCustomize;
end;
procedure TMainWindow.TranslateToolBarCustomize;
begin
with dxBarManager1.CustomizeCaptions do
begin
CAPTION := TranslateStr('ToolabrCustomize',64857);
TABSHEET1 := TranslateStr('ToolabrCustomize',64848);
TABSHEET2 := TranslateStr('ToolabrCustomize',64849);
TABSHEET3 := TranslateStr('ToolabrCustomize',64850);
TOOLBARS := TranslateStr('ToolabrCustomize',64851);
NEW := TranslateStr('ToolabrCustomize',64852);
RENAME := TranslateStr('ToolabrCustomize',64853);
DELETE := TranslateStr('ToolabrCustomize',64854);
RESET := TranslateStr('ToolabrCustomize',64855);
CLOSE := TranslateStr('ToolabrCustomize',64856);
CATEGORIES := TranslateStr('ToolabrCustomize',64858);
COMMANDS := TranslateStr('ToolabrCustomize',64859);
DESCRIPTION := TranslateStr('ToolabrCustomize',64860);
PERSMENUSANDTOOLBARS := TranslateStr('ToolabrCustomize',64844);
MENUSSHOWRECENTITEMS := TranslateStr('ToolabrCustomize',64845);
SHOWFULLMENUSAFTERDELAY := TranslateStr('ToolabrCustomize',64846);
RESETUSAGEDATA := TranslateStr('ToolabrCustomize',64847);
OTHEROPTIONS := TranslateStr('ToolabrCustomize',64816);
LARGEICONS := TranslateStr('ToolabrCustomize',64817);
HINTOPT1 := TranslateStr('ToolabrCustomize',64818);
HINTOPT2 := TranslateStr('ToolabrCustomize',64819);
MENUANIMATIONS := TranslateStr('ToolabrCustomize',64820);
MENUANIM1 := TranslateStr('ToolabrCustomize',64821);
MENUANIM2 := TranslateStr('ToolabrCustomize',64822);
MENUANIM3 := TranslateStr('ToolabrCustomize',64823);
MENUANIM4 := TranslateStr('ToolabrCustomize',64824);
MENUANIM5 := TranslateStr('ToolabrCustomize',64825);
CUSTOMIZE := TranslateStr('ToolabrCustomize',64861);
ADDREMOVEBUTTONS := TranslateStr('ToolabrCustomize',64862);
MOREBUTTONS := TranslateStr('ToolabrCustomize',64863);
RESETTOOLBAR := TranslateStr('ToolabrCustomize',64832);
WANTTORESETUSAGEDATA := TranslateStr('ToolabrCustomize',64907);
TOOLBARADD := TranslateStr('ToolabrCustomize',64839);
TOOLBARRENAME := TranslateStr('ToolabrCustomize',64840);
TOOLBARNAME := TranslateStr('ToolabrCustomize',64842);
DIALOGOK := TranslateStr('ToolabrCustomize',64904);
DIALOGCANCEL := TranslateStr('ToolabrCustomize',64905);
WANTTORESETTOOLBAR := TranslateStr('ToolabrCustomize',64906);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -