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

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

?? mainunit.pas

?? 一個漂亮的電子書籍閱讀管理器
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
  Action:=caFree;
end;
//窗體釋放前----------------------------------------------------------------
procedure TSrmForm.FormDestroy(Sender: TObject);
var
  i:integer;
begin
  for i:=0 to 4 do AppIni.FileList[i]:=Mru.FileList[i];
  Mru.Free;
  AppIni.Free;
  SrmClip.Free;
end;


//****************************************************************
//查找文本---------------------------------------------------------------
procedure TSrmForm.FindDialogFind(Sender: TObject);
var
  FoundAt,StartPos,ToEnd:integer;
  SearchFlag:TSearchTypes;
begin
  if frMatchCase in FindDialog.Options then
    SearchFlag:=SearchFlag+[stMatchCase];
  if frWholeWord in FindDialog.Options then
    SearchFlag:=SearchFlag+[stWholeWord];
  StartPos:=RichEdit.SelStart+RichEdit.SelLength;
  ToEnd:=Length(RichEdit.Text)-StartPos;
  FoundAt:=RichEdit.FindText(FindDialog.FindText,StartPos,ToEnd,
                             SearchFlag);
  if FoundAt<>-1 then
  begin
    RichEdit.SetFocus;
    RichEdit.SelStart:=FoundAt;
    RichEdit.SelLength:=Length(FindDialog.FindText);
  end
  else
  begin
    MessageBox(Handle,csFindError,csAppName,MB_OK or MB_ICONWARNING);
  end;
end;
//替換文本---------------------------------------------------------------
procedure TSrmForm.ReplaceDialogReplace(Sender: TObject);
var
  FoundAt,StartPos,ToEnd:integer;
  SearchFlag:TSearchTypes;
begin
  if frMatchCase in ReplaceDialog.Options then
    SearchFlag:=SearchFlag+[stMatchCase];
  if frWholeWord in ReplaceDialog.Options then
    SearchFlag:=SearchFlag+[stWholeWord];
  StartPos:=0;
  ToEnd:=Length(RichEdit.Text)-StartPos;

  if frReplace in ReplaceDialog.Options then
  begin
    StartPos:=RichEdit.SelStart+RichEdit.SelLength;
    FoundAt:=RichEdit.FindText(ReplaceDialog.FindText,StartPos,ToEnd,
                               SearchFlag);
    if FoundAt<>-1 then
    begin
      RichEdit.SetFocus;
      RichEdit.SelStart := FoundAt;
      RichEdit.SelLength := Length(ReplaceDialog.FindText);
      RichEdit.SelText := ReplaceDialog.ReplaceText;
      RichEdit.SelStart := FoundAt;
      RichEdit.SelLength := Length(ReplaceDialog.ReplaceText);
    end
    else
    begin
      MessageBox(Handle,csFindError,csAppName,MB_OK or MB_ICONWARNING);
    end;
  end
  else if frReplaceAll in ReplaceDialog.Options then
  begin
    StartPos:=0;
    FoundAt:=0;
    while FoundAt<>-1 do
    begin
      FoundAt:=RichEdit.FindText(ReplaceDialog.FindText,StartPos,ToEnd,
                                 SearchFlag);
      if FoundAt<>-1 then
      begin
        RichEdit.SetFocus;
        RichEdit.SelStart := FoundAt;
        RichEdit.SelLength:=Length(ReplaceDialog.FindText);
        RichEdit.SelText:=ReplaceDialog.ReplaceText;
        StartPos:=FoundAt+Length(ReplaceDialog.Findtext);
        ToEnd:=Length(RichEdit.Text)-StartPos;
      end
      else
      begin
        MessageBox(Handle,csReplaceSucess,csAppName,0);
        break;
      end;
    end;
  end
  else
  begin
    FindDialog.Options:=ReplaceDialog.Options;
    FindDialog.FindText:=ReplaceDialog.FindText;
    FindDialogFind(Sender);
  end;
end;


//****************************************************************
//節點改變前---------------------------------------------------------------
procedure TSrmForm.TreeViewChanging(Sender: TObject; Node: TTreeNode;
  var AllowChange: Boolean);
var
  Ps,UserPs:string;
begin
  AllowChange:=true;

  if Srm=nil then exit;
  SaveItem;

  if Node.Data=pointer(-1) then exit;           //如果是新建節點則不檢查口令
  Ps:=Srm.GetItemPassword(integer(Node.Data));  //得要顯示標題的口令
  if Ps<>'' then                                //口令不為空時
  begin
    with TInpwForm.Create(self) do
    begin
      Caption:=csAppName;
      InputLabel.Caption:=csPasswordTitle;
      if ShowModal=mrCancel then
      begin
       AllowChange:=false;
      end;
      UserPs:=Edit.Text;
      if Ps<>UserPs then                        //輸入口令不對時
      begin
        if ModalResult<>mrCancel then           //在口令輸入框中沒按Cancel按鈕
          Application.MessageBox(csPasswordError,csAppName,MB_OK);
        AllowChange:=false;                     //不允許轉移選擇點
      end;
      Free;
    end;
  end;
  end;
//節點改變后---------------------------------------------------------------
procedure TSrmForm.TreeViewChange(Sender: TObject; Node: TTreeNode);
var
  Ms:TMemoryStream;
begin

  if Srm=nil then exit;
  if ((Node=nil) or (integer(Node.Data)=-1)) then  //無效節點或無內容
  begin
    ContextAuthorEdit.Text:='';
    ContextPasswordEdit.Text:='';
    ContextPubDateEdit.Text:=DateToStr(Date);
    ContextIndexEdit.Text:='';
    ContextTypeRadioGroup.ItemIndex:=1;
    RichEdit.Text:='';
    RichEdit.Modified:=false;
    if Node<>nil then
    begin
      Srm.ItemHeadChanged:=true;
      Srm.ItemDataChanged:=true;
    end;
    exit;
  end;

  Srm.ReadItemHead(integer(Node.Data));  //讀入標題屬性
  case Srm.DataHead.Num of
    0:                //無內容
    begin
      RichEdit.Text:='';
    end;
    1:
    begin
      Ms:=TMemoryStream.Create;
      Srm.ReadItemData(Ms);
      RichEdit.PlainText:=true; //和3.2版兼容
      RichEdit.SetTextBuf(Ms.Memory);
      RichEdit.PlainText:=false;//和3.2版兼容
      Ms.Free;
    end;
  end;

  Node.SelectedIndex:=Node.ImageIndex;  //設置標題屬性

  ContextAuthorEdit.Text:=string(Srm.DataHead.Author);
  ContextPasswordEdit.Text:=String(Srm.DataHead.Password);
  ContextPubDateEdit.Text:=DateToStr(Srm.DataHead.PubDate);
  ContextIndexEdit.Text:=string(Srm.DataHead.SearchKey);
  ContextTypeRadioGroup.ItemIndex:=Node.ImageIndex-1;
  TitleLabel.Caption:=Node.Text;
  StatusBar.Refresh;

  RichEdit.Modified:=false;
  Srm.ItemHeadChanged:=false;
  Srm.ItemDataChanged:=false;
end;
//節點被編輯后------------------------------------------------------------
procedure TSrmForm.TreeViewEdited(Sender: TObject; Node: TTreeNode;
  var S: String);
var
  Id:integer;
begin
  S:=FormatTreeNodeString(S);
  if S='' then S:=csNewDefaultTitle;
  if Node.Parent=nil then Id:=0 else Id:=integer(Node.Parent.ItemId);
  PostMessage(TreeView.Handle,TVM_SORTCHILDREN,0,Id);
  TitleLabel.Caption:=S;
  Srm.IndexChanged:=true;
end;
//標題排序函數-------------------------------------------------------
procedure TSrmForm.TreeViewCompare(Sender: TObject; Node1,
  Node2: TTreeNode; Data: Integer; var Compare: Integer);
begin
  if Node1.ImageIndex<Node2.ImageIndex then Compare:=-1
  else if Node1.ImageIndex>Node2.ImageIndex then begin Compare:=1 end
  else comPare:=CompareText(Node1.Text,Node2.Text);
end;
//樹形視圖拖動過程----------------------------------------------------------
procedure TSrmForm.TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
Var
   NbPixels:Integer;
   Info:TScrollInfo;
begin
     if Source<>TreeView then
     begin
       Accept:=false;
       exit;
     end;
     GetScrollInfo(TreeView.Handle,SB_VERT,Info);
     if Info.nMin=Info.nMax then exit;
     NbPixels:=Abs(TreeView.Font.Height);

     if (Y<NbPixels) then
     begin
        TreeView.Perform(WM_VSCROLL,SB_LINEUP,0);
        TreeView.Refresh;
     end;

     if (Y>TreeView.Height-NbPixels-16) then
     begin
        TreeView.Perform(WM_VSCROLL,SB_LINEDOWN,0);
        TreeView.Refresh;
     end;
end;
//樹形視圖拖動結束----------------------------------------------------------
procedure TSrmForm.TreeViewDragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  SNode,DNode:TTreeNode;
  Id:integer;
begin
  SNode:=TreeView.Selected;  //得被拖動的標題
  DNode:=TreeView.GetNodeAt(X,Y);  //得坐標處標題
  if DNode<>SNode then
    if DNode=nil then
      SNode.MoveTo(TreeView.Items.GetFirstNode,naAdd)
    else
    begin
      SNode.MoveTo(DNode,naAddChild);
     end;
  if DNode=nil then Id:=0 else Id:=integer(DNode.ItemId);
  SendMessage(TreeView.Handle,TVM_SORTCHILDREN,0,Id);
  srm.IndexChanged:=true;      //置索引改變為真
end;
//樹形視圖拖動結束----------------------------------------------------------

//節點被擴展前------------------------------------------------------------
procedure TSrmForm.TreeViewExpanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
  ps,UserPs:string;
begin
  AllowExpansion:=true;

  if Node.Data=pointer(-1) then exit;

  UserPs:=Srm.GetItemPassword(integer(Node.Data));
  if UserPs<>'' then
  begin
    with TInpwForm.Create(self) do
    begin
      Caption:=csAppName;
      InputLabel.Caption:=csPasswordTitle;
      if ShowModal=mrCancel then AllowExpansion:=false;
      Ps:=Edit.Text;
      if Ps<>UserPs then
      begin
        if ModalResult<>mrCancel then
          MessageBox(Handle,csPasswordError,csAppName,MB_OK);
        AllowExpansion:=false;
      end;
      Free;
    end;
  end;
end;

//設為標題----------------------------------------------------------
procedure TSrmForm.SetTitlePopMenuItemClick(Sender: TObject);
begin
  TreeView.Selected.Text:=FormatTreeNodeString(RichEdit.SelText);
  Srm.IndexChanged:=true;
  TitleLabel.Caption:=TreeView.Selected.Text;
end;
//設為作者----------------------------------------------------------
procedure TSrmForm.SetAuthorPopMenuItemClick(Sender: TObject);
begin
  ContextAuthorEdit.Text:=RichEdit.SelText;
  Srm.ItemHeadChanged:=true;
end;
//設為關鍵字--------------------------------------------------------
procedure TSrmForm.SetIndexPopMenuItemClick(Sender: TObject);
var
  TmpStr:string;
  p: pchar;
begin
  TmpStr:=RichEdit.SelText;
  if 51<Length(ContextIndexEdit.Text)+RichEdit.SelLength then
  begin
    Application.MessageBox(csIndexError,csAppName,MB_OK);
    exit;
  end;
  p:=pchar(TmpStr);
  while (p^<#33) and (P^<>#0) do inc(p);
  if ContextIndexEdit.Text<>'' then
    if ContextIndexEdit.Text[Length(ContextIndexEdit.Text)]<>'&' then
      ContextIndexEdit.Text:=ContextIndexEdit.Text+'&';
  ContextIndexEdit.Text:=ContextIndexEdit.Text+string(p);
  Srm.ItemHeadChanged:=true;
end;
//編輯框菜單彈出時--------------------------------------------------
procedure TSrmForm.RichEditPopupMenuPopup(Sender: TObject);
begin
  if Srm=nil then
  begin
    CutPopMenuItem.Enabled:=false;
    CopyPopMenuItem.Enabled:=false;
    PastePopMenuItem.Enabled:=false;
    SetTitlePopMenuItem.Enabled:=false;
    SetIndexPopMenuItem.Enabled:=false;
    SelAllPopMenuItem.Enabled:=false;
    SetAuthorPopMenuItem.Enabled:=false;
    DelSpacePopMenuItem.Enabled:=false;
  end
  else
  begin
    OpenClipboard(Handle);
    if GetClipboardData(CF_TEXT)=0 then  //剪貼板中沒有文本時
      PastePopMenuItem.Enabled:=false
    else
      PastePopMenuItem.enabled:=true;
    CloseClipboard;
    if RichEdit.SelLength>=RichEdit.GetTextLen then
      SelAllPopMenuItem.Enabled:=false
    else
      SelAllPopMenuItem.Enabled:=true;
    if richEdit.SelLength<>0 then
    begin
      CutPopMenuItem.Enabled:=true;
      CopyPopMenuItem.Enabled:=true;
      SetTitlePopMenuItem.Enabled:=true;
      SetIndexPopMenuItem.Enabled:=true;
      SetAuthorPopMenuItem.Enabled:=true;
    end
    else
    begin
      CutPopMenuItem.Enabled:=false;
      CopyPopMenuItem.Enabled:=false;
      SetTitlePopMenuItem.Enabled:=false;
      SetIndexPopMenuItem.Enabled:=false;
      SetAuthorPopMenuItem.Enabled:=false;
    end;
    DelSpacePopMenuItem.Enabled:=(RichEdit.Text<>'');
  end;
end;
//剪切標題----------------------------------------------------------
procedure TSrmForm.CutNodePopMenuItemClick(Sender: TObject);
begin
  SrmClip.Cut(TreeView.Selected);
end;
//復制標題----------------------------------------------------------
procedure TSrmForm.CopyNodePopMenuItemClick(Sender: TObject);
begin
  SrmClip.Copy(TreeView.Selected);
end;
//粘貼標題----------------------------------------------------------
procedure TSrmForm.PasteNodePopMenuItemClick(Sender: TObject);
begin
  SrmClip.Paste(TreeView.Selected);
end;
//彈出菜單時的動作--------------------------------------------------------
procedure TSrmForm.TreeViewPopupMenuPopup(Sender: TObject);
begin
  if Srm=nil then
  begin
    DelNodePopMenuItem.Enabled:=false;
    EditNodePopMenuItem.Enabled:=false;
    AddSubNodePopMenuItem.Enabled:=false;
    AddNodePopMenuItem.Enabled:=false;
    CutNodePopMenuItem.Enabled:=false;
    CopyNodePopMenuItem.Enabled:=false;
    PasteNodePopMenuItem.Enabled:=false;
    exit;
  end;

  AddNodePopMenuItem.Enabled:=true;
  if TreeView.Selected=nil then
  begin
    DelNodePopMenuItem.Enabled:=false;
    EditNodePopMenuItem.Enabled:=false;
    AddSubNodePopMenuItem.Enabled:=false;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va精品发布| 亚洲一区二区综合| 欧美群妇大交群中文字幕| 91麻豆免费视频| 91国偷自产一区二区开放时间| 国产aⅴ综合色| 91亚洲精华国产精华精华液| 成人午夜短视频| 成人免费毛片片v| 国产suv精品一区二区883| 国产乱码精品一区二区三区忘忧草 | 精品亚洲国产成人av制服丝袜 | caoporen国产精品视频| 99久久国产综合精品麻豆| 91美女福利视频| 欧美系列一区二区| 欧美日韩精品一区二区三区四区| 在线成人免费观看| 久久综合久久综合久久| 国产精品免费视频观看| 一区二区在线观看视频在线观看| 性做久久久久久免费观看| 三级在线观看一区二区| 国产一区二区按摩在线观看| 成人黄色小视频| 欧美精品一二三| 精品乱人伦小说| 亚洲欧美激情视频在线观看一区二区三区| 夜夜嗨av一区二区三区网页| 日韩成人免费电影| 高清不卡在线观看| 在线成人高清不卡| 国产精品福利av | 日韩免费观看高清完整版 | 亚洲免费av观看| 美女视频黄免费的久久 | 精品国产一区二区三区久久影院| 久久久久久久av麻豆果冻| 亚洲女人****多毛耸耸8| 久久精品免费观看| 91色porny| 久久久www成人免费毛片麻豆| 一区二区三区不卡视频| 美国毛片一区二区三区| 在线视频一区二区三| 久久综合色鬼综合色| 亚洲图片自拍偷拍| 不卡视频一二三| 久久亚洲一区二区三区四区| 亚洲线精品一区二区三区八戒| 麻豆成人久久精品二区三区红| 99在线精品免费| 精品国产电影一区二区| 亚洲在线视频网站| 91色porny在线视频| 欧美国产日产图区| 韩国精品久久久| 91精品国产福利在线观看| 亚洲精品精品亚洲| 99视频精品在线| 欧美国产1区2区| 狠狠狠色丁香婷婷综合激情| 欧美一个色资源| 亚洲成人av一区二区三区| 日本高清免费不卡视频| 国产精品视频九色porn| 国产精品亚洲一区二区三区在线| 欧美一区二区三区四区视频| 亚洲国产视频在线| 在线亚洲精品福利网址导航| 亚洲视频一区在线观看| 99视频有精品| 亚洲另类春色国产| 91成人在线精品| 亚洲电影视频在线| 777久久久精品| 日韩专区中文字幕一区二区| 欧美福利视频导航| 日韩电影免费一区| 日韩精品资源二区在线| 日韩成人一级片| 欧美xxxxx牲另类人与| 精品一区二区综合| 欧美激情在线一区二区| 成人综合婷婷国产精品久久蜜臀| 国产欧美日韩综合精品一区二区| 国产精品资源网站| ㊣最新国产の精品bt伙计久久| 99精品久久99久久久久| 亚洲午夜久久久久久久久电影网| 欧美三级午夜理伦三级中视频| 日韩国产成人精品| 精品国产一区a| 粉嫩13p一区二区三区| 亚洲欧美另类久久久精品2019| 欧美午夜精品久久久久久孕妇| 亚洲电影第三页| 久久免费视频色| 99re这里只有精品首页| 亚洲第一福利一区| 久久中文娱乐网| 色94色欧美sute亚洲线路一ni| 亚洲图片欧美色图| 欧美videossexotv100| 国产91丝袜在线18| 午夜日韩在线电影| 久久久久久9999| 欧美亚洲国产一区二区三区| 另类综合日韩欧美亚洲| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 美女www一区二区| 中文字幕永久在线不卡| 5月丁香婷婷综合| 成人免费观看视频| 奇米影视在线99精品| 国产日韩欧美精品在线| 欧美性生活影院| 国产传媒一区在线| 亚洲国产你懂的| 欧美国产综合色视频| 欧美日韩国产免费| 欧美综合色免费| 久久66热偷产精品| 综合分类小说区另类春色亚洲小说欧美| 欧美美女一区二区| 99r国产精品| 国产精品99久久久久久久女警| 亚洲一区二区三区四区五区黄| 久久久五月婷婷| 欧美一区二区二区| 日本电影欧美片| www.亚洲人| 国产精品影视网| 看国产成人h片视频| 艳妇臀荡乳欲伦亚洲一区| 国产女主播一区| 久久久久国产精品厨房| 日韩美女在线视频| 51精品久久久久久久蜜臀| 在线亚洲一区二区| 94-欧美-setu| 91丨porny丨国产入口| 国产成人精品影院| 国产一区二区日韩精品| 国内外精品视频| 激情久久五月天| 九色综合狠狠综合久久| 日韩成人精品在线观看| 丝袜诱惑亚洲看片| 日韩一区欧美二区| 男人的天堂亚洲一区| 日本va欧美va精品发布| 人人精品人人爱| 麻豆视频观看网址久久| 日韩av在线发布| 免费精品视频最新在线| 久久国产人妖系列| 美女被吸乳得到大胸91| 狠狠色综合播放一区二区| 精品亚洲成a人在线观看| 蜜桃精品视频在线观看| 精品一区二区三区在线观看| 精品在线免费观看| 成人免费看黄yyy456| 成人国产精品视频| 91浏览器在线视频| 欧美欧美午夜aⅴ在线观看| 欧美精品v日韩精品v韩国精品v| 91精品国产欧美一区二区18| 精品国产在天天线2019| 久久九九99视频| 亚洲欧美激情小说另类| 水野朝阳av一区二区三区| 麻豆91精品视频| 国产精品伊人色| 91小视频在线观看| 欧美一区二区三区公司| www成人在线观看| 中文字幕日韩一区二区| 亚洲一区二区视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产剧情一区二区| 欧美综合一区二区| 精品国产凹凸成av人导航| 国产精品国产三级国产三级人妇 | 午夜视频一区在线观看| 久久国产精品99久久人人澡| 不卡的电影网站| 在线不卡免费av| 国产精品国产三级国产aⅴ入口| 一区二区成人在线| 寂寞少妇一区二区三区| 91极品视觉盛宴| 久久久久久99久久久精品网站| 一区二区三区在线视频免费 | 亚洲精品一二三| 激情五月婷婷综合网| 欧美三级欧美一级| 中文字幕精品综合| 日本视频在线一区|