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

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

?? grepresultsdlg.~pas

?? Delphi編寫的一個支持語法高亮顯示和很多語言的文本編輯器
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
var
  i: Integer;
begin
  //Make sure mouse has moved at least 10 pixels before starting drag ...
  if (DragPoint.X = -1) or ((Shift <> [ssLeft]) and (Shift <> [ssRight])) or
    ((Abs(DragPoint.X - X) < 10) and (Abs(DragPoint.Y - Y) < 10)) then Exit;

  i := lbResults.ItemAtPos(Point(X, Y), True);

  if (i > -1) then
  begin
    DragSource.Files.Clear;
    if lbResults.Items.Objects[i] is TSearchResults then
      DragSource.Files.Add(TSearchResults(lbResults.Items.Objects[i]).FFileName)
    else if lbResults.Items.Objects[i] is TSearchResult then
      DragSource.Files.Add(TSearchResults(TSearchResult(lbResults.Items.Objects[i]).Collection).FFileName);
    if DragSource.Files.Count > 0 then
      DragSource.Execute;
  end;
end;

procedure TfrmGrepResults.lbResultsMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  DragPoint := Point(X, Y);
end;

procedure TfrmGrepResults.FormResize(Sender: TObject);
begin
  StatusBar.Panels.Items[0].Width := StatusBar.Width - 100;
  Invalidate;
end;

procedure TfrmGrepResults.FormDestroy(Sender: TObject);
begin
  actClearExecute(actClear);
  SaveSettings;
  frmGrepResults := nil;
  SAbort := True;
  DragSource.Free;
  DragSource := nil;
  inherited;
end;

procedure TfrmGrepResults.SaveSettings;
var
  Reg : TRegistry;
begin
  // do not localize any of the below strings
  Reg := TRegistry.Create;
  Reg.OpenKey(GrepKey, True);
  try
    SaveFont(Reg, lbResults.Font);
  finally
    Reg.CloseKey;
    Reg.Free;
  end;
end;

procedure TfrmGrepResults.LoadSettings;
var
  Reg : TRegistry;
begin
  // do not localize any of the below strings
  Reg := TRegistry.Create;
  Reg.OpenKey(GrepKey, True);
  try
    LoadFont(Reg, lbResults.Font);
  finally
    Reg.Free;
  end;
end;

procedure TfrmGrepResults.FormCreate(Sender: TObject);
begin
  inherited;
  {tran := TvgTranslator.Create(Self);}
  Searching := False;
  LoadSettings;
  ResizeListBox;
  DragSource := TDropFileSource.Create(nil);
end;

procedure TfrmGrepResults.lbResultsMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  p: Integer;
begin
  if Button = mbLeft then
  begin
    p := lbResults.ItemAtPos(Point(X, Y), True);
    if p <> -1 then
      if lbResults.Items.Objects[p] is TSearchResults then
        ExpandContract(p);
  end;
end;

procedure TfrmGrepResults.ExpandContract(n: Integer);
var
  Results: TSearchResults;
  i: Integer;
begin
  if (n < 0) or (n > lbResults.Items.Count - 1) or Searching then
    Exit;
  if lbResults.Items.Objects[n] is TSearchResults then
  begin
    try
      lbResults.Items.BeginUpdate;
      Results := TSearchResults(lbResults.Items.Objects[n]);
      if Results.Expanded then
      begin
        while (n + 1 <= lbResults.Items.Count - 1) and
          (not (lbResults.Items.Objects[n + 1] is TSearchResults)) do
        begin
          lbResults.Items.Delete(n + 1);
        end;
        Results.Expanded := False;
      end
      else
      begin
        for i := Results.Count - 1 downto 0 do
          lbResults.Items.InsertObject(n + 1, Results.Items[i].Line, Results.Items[i]);
        Results.Expanded := True;
      end
    finally
      lbResults.Items.EndUpdate;
    end;
  end;
end;

procedure TfrmGrepResults.lbResultsKeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    '+',
      '=',
      '-': ExpandContract(lbResults.ItemIndex);
    #13: actGotoLineExecute(actGotoLine);
  end;
end;

procedure TfrmGrepResults.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #27 then
  begin
    if Searching then
      SAbort := True
    else
      Hide;
  end;
end;

procedure TfrmGrepResults.ResizeListBox;
begin
  with lbResults do
  begin
    Canvas.Font.Assign(Font);
    ItemHeight := Canvas.TextHeight('W') + 3; // "W" is any character
    Refresh;
  end;
end;

procedure TfrmGrepResults.lbResultsDrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
  TopColor: TColor;
  BottomColor: TColor;
  ResultsCanvas: TCanvas;
  c: Integer;
  p: Integer;
  i: Integer;
  st: string;
  Result: TSearchResult;
  sb: TColor;
  sf: TColor;
  nb: TColor;
  nf: TColor;
begin
  ResultsCanvas := lbResults.Canvas;
  TopColor := clBtnHighlight;
  BottomColor := clBtnShadow;
  if lbResults.Items.Objects[Index] is TSearchResults then
  begin
    ResultsCanvas.Brush.Color := clBtnFace;
    ResultsCanvas.Font.Color := clBtnText;
    ResultsCanvas.FillRect(Rect);
    Rect.Right := Rect.Right + 2;
    if odSelected in State then
      Frame3D(ResultsCanvas, Rect, BottomColor, TopColor, 1)
    else
      Frame3D(ResultsCanvas, Rect, TopColor, BottomColor, 1);
    i := ResultsCanvas.TextWidth('+');
    ResultsCanvas.TextOut(Rect.Left + i + 8, Rect.Top, lbResults.Items[Index]);
    //c:=Rect.Top+((Rect.Bottom-Rect.Top) div 2);
    if TSearchResults(lbResults.Items.Objects[Index]).Expanded then
      ResultsCanvas.TextOut(Rect.Left + 3, Rect.Top, '-')
    else
      ResultsCanvas.TextOut(Rect.Left + 3, Rect.Top, '+');
    st := SItemMatches{tran.TMsg(SItemMatches)} + IntToStr(TSearchResults(lbResults.Items.Objects[Index]).Count);
    p := ResultsCanvas.TextWidth(SItemMatches + '00000') + 10; // do not localize
    if (ResultsCanvas.TextWidth(lbResults.Items[Index]) + i + 7) <= Rect.Right - p then
      ResultsCanvas.TextOut(lbResults.ClientWidth - p, Rect.Top, st);
  end
  else
  begin
    Result := TSearchResult(lbResults.Items.Objects[Index]);
    if odSelected in State then
    begin
      nb := clHighLight;
      nf := clHighLightText;
      sb := clWindow;
      sf := clWindowText;
    end
    else
    begin
      sb := clHighLight;
      sf := clHighLightText;
      nb := clWindow;
      nf := clWindowText;
    end;
    ResultsCanvas.Brush.Color := nb;
    ResultsCanvas.Font.Color := nf;
    ResultsCanvas.FillRect(Rect);
    ResultsCanvas.TextOut(Rect.Left + 10, Rect.Top + 1, IntToStr(Result.LineNo));
    p := 60;
    st := lbResults.Items[Index];
    c := MyTrim(st);
    i := 1;
    while i <= Length(st) do
    begin
      if (i >= Result.SPos - c) and (i <= Result.EPos - c) then
      begin
        ResultsCanvas.Font.Color := sf;
        ResultsCanvas.Brush.Color := sb;
      end
      else
      begin
        ResultsCanvas.Font.Color := nf;
        ResultsCanvas.Brush.Color := nb;
      end;
      If ByteType(st, i) <> mbSingleByte Then
      Begin
        // It's a MBCS
        ResultsCanvas.TextOut(Rect.Left + p, Rect.Top + 1, Copy(st, i, 2));
        p := p + ResultsCanvas.TextWidth(Copy(st, i, 2));
        inc(i);
      end
      else begin
        ResultsCanvas.TextOut(Rect.Left + p, Rect.Top + 1, Copy(st, i, 1));
        p := p + ResultsCanvas.TextWidth(Copy(st, i, 1));
      End;
      inc(i);
    end;
  end;
end;

procedure TfrmGrepResults.WMExitSizeMove(var Message: TMessage);
begin
  lbResults.Repaint;
end;

procedure TfrmGrepResults.mnuRefreshClick(Sender: TObject);
begin
  Execute(True);
end;

procedure TfrmGrepResults.FormShow(Sender: TObject);
begin
  {tran.LanguageFile := CurrentLan;}
  {tran.Translate;}
end;

procedure TfrmGrepResults.FormDockDrop(Sender: TObject;
  Source: TDragDockObject; X, Y: Integer);
begin
  lbResults.Invalidate;
end;

procedure TfrmGrepResults.SpeedButton1Click(Sender: TObject);
begin
  lbResults.Invalidate;
  lbResults.Refresh;
  lbResults.Repaint;
  ShowMessage(IntToStr(lbResults.Items.Count));
end;

procedure TfrmGrepResults.Loaded;
begin
  inherited Loaded;
  //Visible := false;
  //Position := poDefault;
  //BorderIcons := [];
  //BorderStyle := bsNone;
  //HandleNeeded;
end;

procedure TfrmGrepResults.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  //Params.Style := WS_CHILD or WS_CLIPSIBLINGS;
  //Params.X := 0;
  //Params.Y := 0;
end;

procedure TfrmGrepResults.actGrepExecute(Sender: TObject);
begin
  Execute(False);
end;

procedure TfrmGrepResults.actRefreshExecute(Sender: TObject);
begin
  Execute(True);
end;

procedure TfrmGrepResults.actAbortExecute(Sender: TObject);
begin
  sAbort := True;
end;

procedure TfrmGrepResults.actGotoLineExecute(Sender: TObject);
var
  Result          : TSearchResult;
  CurrentFileName : string;
  R               : TPoint;
  fEditor         : TfrmDoc;
  n               : Integer;
  found           : Boolean;
begin
  fEditor := nil;
  found := False;
  if (lbResults.ItemIndex < 0) then
    Exit;
  if (lbResults.Items.Objects[lbResults.ItemIndex] is TSearchResults) then
  begin
    ExpandContract(lbResults.ItemIndex);
    Exit;
  end;
  Result := TSearchResult(lbResults.Items.Objects[lbResults.ItemIndex]);
  if Result = nil then Exit;
  with TSearchResults(Result.Collection) do
  begin
    CurrentFileName := FileName;
  end; //with
  R.X := Result.SPos;
  R.Y := Result.LineNo;

  for n := 0 to frmMain.MDIChildCount - 1 do
  begin
    if UpperCase(tfrmDoc(frmMain.MDIChildren[n]).Filename) = uppercase(CurrentFileName) then
    begin
      frmMain.MDIChildren[n].BringToFront;
      fEditor := TfrmDoc(frmMain.MDIChildren[n]);
//      fEditor.sciMain.Set(R.Y-1,R.X-1);
      fEditor.sciMain.CaretY := r.y;
      fEditor.sciMain.CaretX := r.X;
      found := True;
      fEditor.sciMain.SetFocus;
    end;
  end;
  if not found then
  begin
    dmMain.NewDoc(CurrentFileName);
    fEditor := frmMain.GetCurrentEditor;
//    fEditor.sciMain.SetSection(R.Y-1,R.X-1);

    fEditor.sciMain.CaretY := r.y;
    fEditor.sciMain.CaretX := r.X;
    Windows.SetFocus(dmMain.SelDoc.sciMain.Handle)
  end;
  if Assigned(fEditor) then
  Begin
{    fEditor.synMDI.SelLength := (Result.EPos + 1) - Result.SPos;
    fEditor.synMDI.Perform(EM_SCROLLCARET, 0, 0);}

  end;
  Windows.SetFocus(dmMain.SelDoc.sciMain.Handle)
end;

procedure TfrmGrepResults.actPrintExecute(Sender: TObject);
var
  RichEdit: TRichEdit;
  Results: TSearchResults;
  Line: string;
  i, j, c: Integer;
  LinePos: Integer;

begin
  if lbResults.Items.Count = 0 then
    Exit;
  RichEdit := TRichEdit.Create(Self);
  try
    RichEdit.Visible := False;
    RichEdit.Parent := Self;
    RichEdit.Font.Name := 'Arial';
    RichEdit.Font.Size := 10;
    RichEdit.Clear;

    for i := 0 to lbResults.Items.Count - 1 do
      if lbResults.Items.Objects[i] is TSearchResults then
      begin
        RichEdit.Lines.Add(''); // space between fileresults

        Results := TSearchResults(lbResults.Items.Objects[i]);

        RichEdit.SelAttributes.Style := [fsBold];
        RichEdit.Lines.Add(Results.FileName);
        RichEdit.SelAttributes.Style := [];

        for j := 0 to Results.Count - 1 do
        begin
          LinePos := RichEdit.GetTextLen;
          Line := Results.Items[j].Line;
          c := MyTrim(Line);
          with RichEdit do
          begin
            Lines.Add(Format('  %5d'#9, [Results.Items[j].LineNo]) + Line);
            // Now make the found Text bold
            SelStart := LinePos + 7 - c + Results.Items[j].SPos;
            SelLength := Results.Items[j].EPos - Results.Items[j].SPos + 1;
            SelAttributes.Style := [fsBold];
            SelLength := 0;
            SelAttributes.Style := [];
          end;
        end;
      end;
    RichEdit.Print('Grep Search Results');
  finally
    RichEdit.Free;
  end;
end;

procedure TfrmGrepResults.actContractExecute(Sender: TObject);
var
  i: Integer;
begin
  Self.Enabled := False;
  lbResults.Items.BeginUpdate;
  try
    i := 0;
    while i <= lbResults.Items.Count - 1 do
      if lbResults.Items.Objects[i] is TSearchResult then
      begin
        lbResults.Items.Delete(i);
      end
      else
      begin
        TSearchResults(lbResults.Items.Objects[i]).Expanded := False;
        Inc(i);
      end;
  finally
    lbResults.Items.EndUpdate;
    Self.Enabled := True;
  end;
end;

procedure TfrmGrepResults.actExpandExecute(Sender: TObject);

  function Expand(n: Integer): Integer;
  var
    Results: TSearchResults;
    t: integer;
  begin
    Results := TSearchResults(lbResults.Items.Objects[n]);
    for t := Results.Count - 1 downto 0 do
      lbResults.Items.InsertObject(n + 1, Results.Items[t].Line, Results.Items[t]);
    Results.Expanded := True;
    Result := n + Results.Count - 1;
  end;

var
  i: integer;
begin
  Self.Enabled := false;
  lbResults.Items.BeginUpdate;
  try
    i := 0;
    while i <= lbResults.Items.Count - 1 do
      if lbResults.Items.Objects[i] is TSearchResults then
      begin
        if not TSearchResults(lbResults.Items.Objects[i]).Expanded then
          i := Expand(i);
        Inc(i);
      end
      else
        Inc(i);
  finally
    lbResults.Items.EndUpdate;
    Self.Enabled := True;
  end;
end;

procedure TfrmGrepResults.actFontExecute(Sender: TObject);
begin
  dlgGrepFont.Font.Assign(lbResults.Font);
  if dlgGrepFont.Execute then
  begin
    lbResults.Font.Assign(dlgGrepFont.Font);
    ResizeListBox;
  end;

end;

procedure TfrmGrepResults.actClearExecute(Sender: TObject);
begin
  lbResults.Clear;
  actExpand.Enabled := False;
  actContract.Enabled := False;
  actGotoLine.Enabled := False;
  actPrint.Enabled := False;
end;

procedure TfrmGrepResults.lbResultsDblClick(Sender: TObject);
begin
  actGotoLineExecute(actGotoLine);
end;

procedure TfrmGrepResults.MakeVisible;
begin
  Visible := True;
  FormResize(Self);
end;

procedure TfrmGrepResults.ClearResults1Click(Sender: TObject);
begin
  lbResults.Clear;
end;

procedure TfrmGrepResults.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  frmMain.FindInFiles2.Checked := false;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看91视频大全| 日本一二三四高清不卡| 亚洲一区在线视频| 欧美亚洲一区三区| 久久成人精品无人区| 欧美一区二区黄| 秋霞电影一区二区| 久久人人97超碰com| 国产一区二区三区视频在线播放| 久久久久97国产精华液好用吗| 国产99久久久精品| 亚洲激情五月婷婷| 日韩一区二区三区四区| 国产一区二区三区不卡在线观看| 中文字幕欧美激情一区| 在线免费不卡视频| 毛片av一区二区| 国产精品久久久久久亚洲毛片| 色综合天天天天做夜夜夜夜做| 午夜伦理一区二区| 久久嫩草精品久久久精品| 99在线精品视频| 日本欧美一区二区三区乱码| 欧美国产日韩一二三区| 欧美手机在线视频| 国产精品1024| 亚洲成av人在线观看| 久久美女艺术照精彩视频福利播放| 成人av电影在线播放| 午夜亚洲国产au精品一区二区| 精品国产精品一区二区夜夜嗨| heyzo一本久久综合| 日本不卡的三区四区五区| 中文幕一区二区三区久久蜜桃| 欧美日韩国产欧美日美国产精品| 国产一区二区三区在线观看免费视频| 国产精品国产三级国产专播品爱网 | 欧美激情一区二区| 欧美久久久影院| 粉嫩av一区二区三区粉嫩| 伊人夜夜躁av伊人久久| 久久婷婷色综合| 欧美久久久久中文字幕| 成人精品小蝌蚪| 精品一区二区三区久久| 亚洲午夜成aⅴ人片| 中文字幕欧美一| 精品国产一区二区三区久久影院 | 午夜成人免费电影| 欧美国产国产综合| 日韩精品专区在线| 欧美视频一区二区| 成人精品视频一区二区三区| 轻轻草成人在线| 午夜欧美一区二区三区在线播放| 国产精品二三区| 久久网这里都是精品| 欧美一级理论片| 91麻豆.com| 99精品欧美一区二区三区小说| 久久精品理论片| 秋霞午夜av一区二区三区| 亚洲国产cao| 亚洲线精品一区二区三区八戒| 国产精品成人午夜| 中文字幕乱码亚洲精品一区| 久久综合网色—综合色88| 日韩精品在线看片z| 欧美一级片在线观看| 67194成人在线观看| 欧美高清精品3d| 欧美日韩国产综合视频在线观看| 91国在线观看| 欧美性一级生活| 欧美色综合网站| 欧美日韩aaa| 欧美剧情电影在线观看完整版免费励志电影| 97久久精品人人爽人人爽蜜臀| 国产成人精品亚洲午夜麻豆| 国产成人午夜视频| 国产69精品久久久久777| 国产乱国产乱300精品| 国产伦精品一区二区三区视频青涩| 精品一区二区在线免费观看| 狠狠色伊人亚洲综合成人| 韩国三级在线一区| 国产91在线看| 99久久99久久精品免费观看 | 五月综合激情网| 视频一区在线播放| 麻豆精品国产传媒mv男同| 日本三级亚洲精品| 国产一区二区三区日韩| 成人性生交大片免费看视频在线 | 精品免费99久久| 国产日韩av一区| 中文字幕永久在线不卡| 一区二区三区高清| 日韩电影免费在线观看网站| 麻豆国产欧美一区二区三区| 丁香天五香天堂综合| 欧美日韩视频在线观看一区二区三区| 欧美性一区二区| 精品国产成人系列| 亚洲裸体xxx| 热久久久久久久| 成人免费毛片a| 欧美日韩一区高清| 精品国产乱码久久久久久1区2区| 国产精品亲子乱子伦xxxx裸| 亚洲图片自拍偷拍| 国产精品一级在线| 日本韩国欧美国产| 欧美变态tickle挠乳网站| 国产精品视频yy9299一区| 亚洲一区二区三区四区五区中文| 琪琪久久久久日韩精品| 成人妖精视频yjsp地址| 欧美日本一道本| 国产丝袜在线精品| 亚洲午夜精品一区二区三区他趣| 精品一区二区在线观看| 在线精品国精品国产尤物884a| 日韩美一区二区三区| 亚洲少妇最新在线视频| 欧美96一区二区免费视频| 91丝袜国产在线播放| 日韩一区二区在线观看视频| 中文字幕五月欧美| 久久福利视频一区二区| 色天天综合久久久久综合片| 久久品道一品道久久精品| 午夜激情综合网| 91亚洲国产成人精品一区二三| 欧美r级电影在线观看| 一区二区三区在线免费视频| 高清成人在线观看| 国产大陆亚洲精品国产| 日本一区二区在线不卡| 国产一区二区伦理| 中文字幕中文字幕一区| 国内精品不卡在线| 国产免费观看久久| 欧美自拍偷拍午夜视频| 日韩av一区二区三区| 色视频成人在线观看免| 亚洲超碰精品一区二区| 国产视频一区不卡| 国产盗摄一区二区| 日韩av电影天堂| 亚洲一区二区三区在线看| 欧美三级视频在线观看| 久久综合资源网| 粉嫩av一区二区三区| 亚洲一区二区av电影| 91免费看片在线观看| 亚洲免费观看在线观看| 欧美一区二区免费视频| 欧美mv日韩mv亚洲| 高清不卡在线观看| 亚洲色图视频免费播放| 色天使久久综合网天天| 奇米四色…亚洲| 日韩一区精品字幕| 欧美精品一区二区高清在线观看| 成人免费看视频| 日韩高清不卡在线| 国产精品午夜免费| 欧美日本在线一区| 精品一区二区影视| 亚洲国产精品影院| 日韩一区二区免费在线电影| 日本伊人色综合网| 日韩视频一区二区在线观看| 国产麻豆视频一区| 亚洲四区在线观看| 91麻豆精品国产91久久久| 国产一区二区三区电影在线观看| 国产区在线观看成人精品| 色综合色综合色综合| 懂色av一区二区在线播放| 成人精品视频.| 国内精品自线一区二区三区视频| 国产精品女主播av| 欧美国产一区二区在线观看| 久久久亚洲高清| 欧美一区二区三区视频免费播放| 欧美日本在线播放| 欧美性淫爽ww久久久久无| 懂色av一区二区在线播放| 久久精品国产成人一区二区三区| 国产成人8x视频一区二区| 粉嫩蜜臀av国产精品网站| 国产精品自拍av| 懂色一区二区三区免费观看| 99热国产精品| 韩国毛片一区二区三区| 亚洲精品少妇30p| 国产精品麻豆久久久| 国产精品久久久久婷婷|