亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mainunit.pas

?? 一個漂亮的電子書籍閱讀管理器
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    CutNodePopMenuItem.Enabled:=false;
    CopyNodePopMenuItem.Enabled:=false;
  end
  else
  begin
    DelNodePopMenuItem.Enabled:=true;
    EditNodePopMenuItem.Enabled:=true;
    AddSubNodePopMenuItem.Enabled:=true;
    CutNodePopMenuItem.Enabled:=true;
    CopyNodePopMenuItem.Enabled:=true;

  end;
  if SrmClip.Node=nil then
    PasteNodePopMenuItem.Enabled:=false
  else
    PasteNodePopMenuItem.Enabled:=true;
end;



//****************************************************************
//---------------------------------------------------------------------
procedure TSrmForm.StatusBarDrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
var
  Text:string;
  Rc:TRect;
begin
  Rc:=Rect;
  Rc.Left:=Rc.Left+3;
  if Panel=StatusBar.Panels[0] then
  begin
    Text:=csPanel1Text+IntToStr(TreeView.Items.Count);
  end;
  if Panel=StatusBar.Panels[1] then
  begin
    Text:=csPanel2Text+IntToStr(RichEdit.GetTextLen);
  end;
  if Panel=StatusBar.Panels[2] then
  begin
    Text:=PanelHint;
  end;
  with StatusBar.Canvas do
  begin
    Brush.Style := bsClear;
    Font := StatusBar.Font;
    Font.Color := clWhite;
    OffsetRect(Rc,5,1);
    DrawText(Handle, PChar(Text), Length(Text), Rc,(DT_VCENTER or DT_SINGLELINE));
    OffsetRect(Rc,-1,-1);
    Font:=StatusBar.Font;
    DrawText(Handle, PChar(Text), Length(Text), Rc,(DT_VCENTER or DT_SINGLELINE));
  end;
end;

//****************************************************************
//新建數據文件-------------------------------------------------------------
procedure TSrmForm.NewMenuItemClick(Sender: TObject);
begin
  with SaveDialog do
  begin
    DefaultExt:=csSrmExt;
    Filter:=csSrmFilter;
    Title:=csCreateTitle;
  end;
  if SaveDialog.Execute then
  begin
    if CloseSrmQuery then CloseSrm else exit;
    Srm:=TSrmObject.Create(SaveDialog.FileName,fmCreate);
    DbAuthorEdit.Text:='';
    DbPasswordEdit.Text:='';
    DbBuildDateEdit.Text:=DateToStr(Srm.FileHead.BuildDate);
    DbeditDateEdit.Text:=DatetoStr(Srm.FileHead.EditDate);
    Caption:=csAppName+' - '+SaveDialog.FileName;
    Mru.Add(SaveDialog.FileName);
  end;
end;
//打開數據文件------------------------------------------------------------
procedure TSrmForm.OpenMenuItemClick(Sender: TObject);
begin
  with OpenDialog do
  begin
    DefaultExt:=csSrmExt;
    Filter:=csSrmFilter;
    Title:=csOpenTitle;
    FileName:='';
  end;
  if OpenDialog.Execute then
  begin
    if CloseSrmQuery then CloseSrm else exit;
    OpenSrm(OpenDialog.FileName);
     if Srm=nil then
      Caption:=csAppName
     else
     begin
       Caption:=csAppName+' - '+OpenDialog.FileName;
       Mru.Add(OpenDialog.FileName);
     end;
  end;
end;
//保存數據文件------------------------------------------------------------
procedure TSrmForm.SaveMenuItemClick(Sender: TObject);
begin
  SaveSrm;
end;
//關閉數據文件------------------------------------------------------------
procedure TSrmForm.CloseMenuItemClick(Sender: TObject);
begin
  if CloseSrmQuery then
  begin
    CloseSrm;
    Caption:=csAppName;
  end;
end;
//文件引入-----------------------------------------------------------------
procedure TSrmForm.FImportMenuItemClick(Sender: TObject);
var

  Ps,UserPs:string;
  ms,Msh,Msd:TMemoryStream;
  j:integer;
  p:PTreeData;
  AList: TStringList;
  ALevel,AOldLevel:integer;
  AParentNode:TTreeNode;
  StrBuf:PChar;
  SrmImport:TSrmObject;
  ANode:TTreeNode;
  i,n:integer;
  Fn:string;
begin
  with OpenDialog do
  begin
    DefaultExt:=csTxtExt;
    Filter:=csTxtFilter+'|'+csSrmFilter; //*
    Title:=csOpenTitle;
    FileName:='';
  end;
  if OpenDialog.Execute then
   
    RichEdit.Perform(WM_SETREDRAW,0,0);  //禁止重繪
    for i:=0 to OpenDialog.Files.Count-1 do  //循環(huán)讀入多重選擇文件

  if lowercase(ExtractFileExt(OpenDialog.Files.Strings[i]))='.srm'  then //*導入SRM文件
   begin
 SrmImport:=TSrmObject.Create(OpenDialog.Files.Strings[i],fmOpenReadWrite);
  if SrmImport.FileHead.Password[0]<>#0 then    //密碼保護
  begin
    InPwForm:=TInPwForm.Create(SrmForm);
    with InPwForm do
    begin
      Caption:=csAppName;
      InputLabel.Caption:=csPasswordTitle;
      if ShowModal=mrCancel then
      begin
        SrmImport.Free;
        Free;
        break;
      end;
      Ps:=Edit.Text;
      UserPs:=string(SrmImport.FileHead.Password);
      if Ps<>UserPs then
      begin
        if ModalResult<>mrCancel then
          Application.MessageBox(csAppName,csPasswordError,MB_OK);
        SrmImport.Free;
        Free;
        break;
      end;
      Free;
    end;
  end;
  Screen.Cursor:=crHourGlass;
  Msh:=TMemoryStream.Create;
  Msd:=TMemoryStream.Create;
  SrmImport.LoadIndex(Msh,Msd);                 //裝入索引
  AList := TStringList.Create;
  SrmForm.TreeView.Items.BeginUpdate;
  AList.LoadFromStream(Msh);     //裝入到字符串列表中
  AOldLevel:=0   ;     //計算當前節(jié)點的級數
  AParentNode :=Nil;
  p:=Msd.Memory;
  for n:=0 to AList.Count-1 do                        //根據TAB的多少得到相應級別
  begin
    StrBuf:=PChar(AList.Strings[n]);
    ALevel:=0;
    while StrBuf^=#9 do                   //得該項所在層數
    begin
      Inc(StrBuf);
      Inc(ALevel);
    end;
    if (ALevel<AOldLevel) or (AParentNode<>nil) then
    begin                                 //返回該項的上級節(jié)點
      for j:=AOldLevel downto ALevel do
      begin
        AParentNode:=AParentNode.Parent;
      end;
    end;
    AParentNode:=SrmForm.TreeView.Items.AddChildObject(AParentNode,StrBuf,
                                     pointer(-1));
    AParentNode.ImageIndex:=p.DataType;   //得該節(jié)點類型
    AOldLevel:=ALevel;
    SrmImport.ReadItemHead(integer(p.pos));
    srm.DataHead :=SrmImport.DataHead ;  //讀入標題屬性
    TreeView.Selected :=AParentNode;
  case SrmImport.DataHead.Num of
    0:                //無內容
    begin
      RichEdit.Text:='';
    end;
    1:
    begin
      Ms:=TMemoryStream.Create;
      SrmImport.ReadItemData(Ms);
      RichEdit.PlainText:=true; //和3.2版兼容
      RichEdit.SetTextBuf(Ms.Memory);
      RichEdit.PlainText:=false;//和3.2版兼容
      Ms.Free;
    end;
  end;

    //Srm.ItemDataChanged:=true;
        p:=pointer(integer(p)+sizeof(TTreeData));
  end;
  SrmForm.TreeView.Items.EndUpdate;
  AList.Free;
  Msd.Free;
  Msh.Free;
   SrmImport.Free;
   TreeView.Selected:=SrmForm.TreeView.Items[0];         //置當前選擇項為空
   TreeView.FullCollapse;

  end
else
  begin

      Fn:=ExtractFileName(OpenDialog.Files.Strings[i]);
      Delete(Fn,Length(Fn)-3,4);
      ANode:=TreeView.Items.AddObjectFirst(TreeView.Selected,Fn,pointer(-1));
      ANode.ImageIndex:=2;
      with Srm.DataHead do
      begin
        DataType:=2;
        Author[0]:=#0;
        Password[0]:=#0;
      end;
      TreeView.Selected:=ANode;
      RichEdit.Lines.LoadFromFile(OpenDialog.Files.Strings[i]);
    end  ;
    StatusBar.Refresh;
    RichEdit.Perform(WM_SETREDRAW,-1,0);  //允許重繪
    Richedit.Refresh;
    Screen.Cursor:=crDefault;

end;
//目錄引入-----------------------------------------------------------------
procedure TSrmForm.DImportMenuItemClick(Sender: TObject);
var
  Temps:WideString;
  Dir,Mask:string;
  ANode:TTreeNode;
begin
  Temps:='';
//  if not SelectDirectory(csAppName,Temps,Dir) then exit;
  Dir:=BrowseFolder;
  If Dir='' Then exit;
  ANode:=TreeView.Items.AddChildObjectFirst(TreeView.Selected,
       GetLastPathName(Dir),pointer(-1));
  ANode.ImageIndex:=1;
  with Srm.DataHead do
  begin
    DataType:=1;
    Author[0]:=#0;
    Password[0]:=#0;
  end;
  TreeView.Selected:=ANode;
  RichEdit.Modified:=true;
  if Dir[Length(Dir)]<>'\' then Dir:=Dir+'\';
  Mask:='*.'+csTxtExt;
  Screen.Cursor:=crHourGlass;
  RichEdit.Perform(WM_SETREDRAW,0,0);  //禁止重繪
  ImportDir(Dir,Mask);
  RichEdit.Perform(WM_SETREDRAW,-1,0);  //允許重繪
  Richedit.Refresh;
  StatusBar.Refresh;
  SCreen.Cursor:=crDefault;
end;
//導出標題內容--------------------------------------------------------------
procedure TSrmForm.ExportMenuItemClick(Sender: TObject);
var
  Dir:string;
//  i,n:integer;     //對別的格式要導出其附件

  function FormatFileName(Fn:string):string;
  var
    i,n:integer;
    c:char;
  begin
    Result:=Fn;
    n:=Length(Result);
    for i:=1 to n do
    begin
      c:=Result[i];
      if ((c=#92) or (c=#47) or (c=#58) or (c=#42) or (c=#63) or
           (c=#34) or (c=#60) or (c=#62) or (c=#124)) then
        Result[i]:='$';  //替換掉系統不接受的文件命名的字符
    end;
  end;
  procedure OutPutSrm(ANode:TTreeNode;Dir:string);
  var
    SNode:TTreeNode;
    Ms:TMemoryStream;
    Fh:integer;
    Path:string;
  begin
    Ms:=TMemoryStream.Create;
    Path:=Dir;
    SNode:=ANode.GetFirstChild;
    while SNode<>nil do
    begin
      if SNode.ImageIndex=1 then
      begin
        Dir:=Path+FormatFileName(SNode.Text);
        MkDir(Dir);
        Dir:=Dir+'\';
        OutPutSrm(SNode,Dir);
      end
      else
      begin
        Srm.ReadItemHead(integer(SNode.Data));
        if ((Srm.DataHead.Password[0]=#0) and (Srm.DataHead.Num=1)) then
        begin       //沒有口令的內容才導出
          Srm.ReadItemData(Ms);
          Fh:=FileCreate(Path+FormatFileName(SNode.Text)+'.'+csTxtExt);
          if Fh<>0 then FileWrite(Fh,Ms.Memory^,Ms.Size);
          FileClose(Fh);
        end;
      end;
      SNode:=SNode.GetNextSibling;
    end;
    Ms.Free;
  end;
begin
  if TreeView.Selected=nil then exit;
  if TreeView.Selected.GetFirstChild=nil then
  begin
    with SaveDialog do
    begin
      DefaultExt:=csTxtExt;
      Filter:=csTxtFilter;
      Title:=csSaveAsTitle;
      FileName:=TreeView.Selected.Text;
    end;
    if SaveDialog.Execute then
    begin
      RichEdit.Lines.SaveToFile(SaveDialog.FileName);
    end;
  end
  else
  begin
    Dir:=BrowseFolder;
    If Dir='' Then exit;
    if Dir[Length(Dir)]<>'\' then Dir:=Dir+'\';
    Dir:=Dir+FormatFileName(TreeView.Selected.Text);
    if DirectoryExists(Dir) then
    begin
      Application.MessageBox(csDirExists,csAppName,MB_OK or MB_ICONERROR);
      exit;
    end;
    MkDir(Dir);
    Dir:=Dir+'\';
    Screen.Cursor:=crHourGlass;
    OutPutSrm(TreeView.Selected,Dir);
    Screen.Cursor:=crDefault;
  end;
end;
//打印內容------------------------------------------------------------------
procedure TSrmForm.PrintMenuItemClick(Sender: TObject);
begin
  if RichEdit.GetTextLen()=0 then
    RichEdit.Print(TitleLabel.Caption);
end;
//退出菜單-----------------------------------------------------------------
procedure TSrmForm.ExitMenuItemClick(Sender: TObject);
begin
  Close;
end;
//最近文件列表-----------------------------------------------------------------
procedure TSrmForm.ListMenuItemClick(Sender: TObject);
var
  Temps:string;
begin
  if CloseSrmQuery then closeSrm else exit;
  Temps:=Mru.FileList[TMenuItem(Sender).Tag];
  if Temps<>'' then
    if FileExists(Temps) then
     OpenSrm(Temps);
  if Srm=nil then
    Caption:=csAppName
  else
  begin
    Caption:=csAppName+' - '+Temps;
    Mru.Add(Temps);
  end;
end;
//我的最愛-----------------------------------------------------------------
procedure TSrmForm.MyLoveMenuItemClick(Sender: TObject);
begin
  if CloseSrmQuery then CloseSrm else exit;
  if AppIni.MyLoveFile<>'' then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美色一区| 国产精品一区二区三区99| 日日骚欧美日韩| eeuss鲁片一区二区三区| 制服丝袜亚洲网站| 亚洲四区在线观看| 国产一区不卡视频| 777午夜精品视频在线播放| 亚洲视频一区二区在线| 国产一区二区三区电影在线观看| 在线观看日韩精品| 国产欧美精品一区二区三区四区 | 亚洲国产精品麻豆| 国产成人精品一区二区三区四区 | 日韩欧美在线一区二区三区| 亚洲婷婷在线视频| 国产 欧美在线| 欧美精品一区二区精品网| 天堂影院一区二区| 欧美性生活久久| 亚洲精品欧美专区| 成人av影视在线观看| 久久青草欧美一区二区三区| 免费成人小视频| 欧美日韩国产色站一区二区三区| 亚洲视频一区在线观看| 粉嫩一区二区三区在线看| 亚洲韩国一区二区三区| jizzjizzjizz欧美| 国产精品青草久久| 高清国产一区二区| 中文字幕精品一区| 国产成人av电影在线| 国产精品丝袜久久久久久app| 久久国产精品72免费观看| 日韩一区二区视频| 免费欧美日韩国产三级电影| 欧美日韩国产小视频| 日韩国产高清在线| 欧美一区二区黄色| 久久精品国产一区二区三区免费看 | 亚洲日本va在线观看| 99久久综合精品| 日韩码欧中文字| 91黄色免费网站| 性感美女久久精品| 91精品国产一区二区三区蜜臀| 亚洲大片精品永久免费| 777亚洲妇女| 国内精品免费**视频| 久久久久国产免费免费| 国产suv精品一区二区三区 | 国产亚洲短视频| 国产成人综合自拍| 日韩美女精品在线| 欧美理论电影在线| 精品一区二区三区免费毛片爱 | 婷婷中文字幕综合| 亚洲精品一区二区精华| 国产成人av一区二区| 国产精品福利在线播放| 欧美三日本三级三级在线播放| 午夜a成v人精品| 亚洲精品一区二区三区99| 成人美女视频在线观看18| 一区二区三区加勒比av| 日韩欧美一级在线播放| 国产99久久精品| 一区二区三区在线免费观看| 欧美一区二区久久久| 成人午夜电影网站| 亚洲成av人片在www色猫咪| 日韩一区二区在线观看视频| 99久久婷婷国产精品综合| 日日夜夜免费精品视频| 中文子幕无线码一区tr| 51精品秘密在线观看| 不卡电影一区二区三区| 日本中文一区二区三区| 国产精品久久久久婷婷二区次| 欧美理论电影在线| www.色精品| 精品一区二区免费视频| 亚洲黄色在线视频| 久久久精品国产免大香伊| 欧美日产在线观看| av一区二区久久| 韩国三级中文字幕hd久久精品| 亚洲一区二区三区三| 欧美精彩视频一区二区三区| 在线成人av影院| 91蝌蚪porny| 国产精品综合av一区二区国产馆| 午夜视频在线观看一区二区| 国产精品家庭影院| 国产亚洲综合av| 日韩欧美精品在线视频| 欧美日韩免费一区二区三区视频| 国产suv一区二区三区88区| 毛片基地黄久久久久久天堂| 亚洲最新在线观看| 国产激情视频一区二区三区欧美| 婷婷久久综合九色国产成人| 国产精品家庭影院| 亚洲国产精品成人久久综合一区| 精品久久五月天| 欧美巨大另类极品videosbest| 一本色道亚洲精品aⅴ| 国产69精品久久777的优势| 精品无码三级在线观看视频| 污片在线观看一区二区| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲欧洲色图综合| 久久久久99精品国产片| 2020日本不卡一区二区视频| 日韩丝袜美女视频| 日韩欧美国产系列| 精品日本一线二线三线不卡| 欧美一区二区高清| 欧美不卡123| 欧美va亚洲va| 精品国产一区二区在线观看| 日韩欧美国产系列| 精品久久久久久久人人人人传媒| 日韩免费高清视频| 久久久一区二区三区| 国产无人区一区二区三区| 中文字幕不卡在线播放| 国产农村妇女精品| 《视频一区视频二区| 亚洲日本在线视频观看| 亚洲永久精品国产| 日韩av电影天堂| 久久精品国产99国产| 国产精品18久久久久久久久 | av在线这里只有精品| 91首页免费视频| 欧美色图一区二区三区| 欧美高清激情brazzers| 欧美www视频| 国产日韩亚洲欧美综合| 亚洲激情欧美激情| 日韩和欧美一区二区三区| 久久97超碰色| 不卡一区在线观看| 欧美精品久久99久久在免费线 | 久久久久久久久久久久久久久99 | 亚洲欧美另类久久久精品| 亚洲一二三四区| 六月丁香综合在线视频| 成人激情校园春色| 欧美年轻男男videosbes| 日韩午夜小视频| 国产精品美女久久久久aⅴ| 亚洲国产成人tv| 久久99精品久久久久久动态图 | 国产精品拍天天在线| 有码一区二区三区| 国产一区二区成人久久免费影院| 99久久99久久精品国产片果冻| 91精品国产高清一区二区三区| 国产视频一区二区在线观看| 亚洲午夜三级在线| 国产精品一卡二| 欧美日韩一区久久| 亚洲国产精品99久久久久久久久 | 免费成人性网站| 91免费在线播放| 蜜臀精品久久久久久蜜臀| 国产激情视频一区二区在线观看| 成人性生交大片免费看中文| 欧美日韩小视频| 国产精品美女一区二区在线观看| 日韩电影在线看| 91麻豆国产在线观看| 日韩一区精品视频| 国产成人综合亚洲网站| 欧美高清视频一二三区| 欧美视频中文一区二区三区在线观看| 亚洲国产精品黑人久久久| 成人小视频在线观看| 中文字幕亚洲不卡| 国产日韩欧美麻豆| 成人免费观看av| 亚洲理论在线观看| 欧美午夜精品理论片a级按摩| 亚洲福利电影网| 欧美一级电影网站| 激情小说欧美图片| 国产欧美日韩精品一区| 91在线观看下载| 亚洲国产成人av| 日韩免费高清电影| 国产成人精品影院| 亚洲激情综合网| 欧美三级电影网站| 麻豆精品久久久| 中文字幕不卡三区| 欧美亚洲国产一区二区三区va| 日本美女一区二区|