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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? grepresultsdlg.pas

?? Delphi編寫的一個支持語法高亮顯示和很多語言的文本編輯器
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
procedure TfrmGrepResults.lbResultsMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
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.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区成人在线观看| 欧美二区乱c少妇| 欧美日韩在线免费视频| 日韩一区二区三区在线| 国产欧美精品一区二区色综合朱莉 | 日韩美女天天操| 国产日韩影视精品| 亚洲自拍偷拍av| 国产精品亚洲一区二区三区妖精 | 亚洲午夜成aⅴ人片| 精品制服美女丁香| 91色在线porny| 亚洲综合色丁香婷婷六月图片| 日韩va欧美va亚洲va久久| 国产美女一区二区三区| 在线观看成人免费视频| 久久久精品蜜桃| 一区二区不卡在线视频 午夜欧美不卡在| 蓝色福利精品导航| 色婷婷久久久亚洲一区二区三区 | 成人av第一页| 777色狠狠一区二区三区| 中文字幕精品综合| 欧美aⅴ一区二区三区视频| 91视频在线观看| 久久只精品国产| 午夜国产不卡在线观看视频| 成人禁用看黄a在线| 精品久久久久久最新网址| 一区二区免费视频| 成人精品国产福利| 亚洲精品一区二区三区四区高清 | 日韩亚洲欧美一区二区三区| 亚洲猫色日本管| 国产精品一区三区| 欧美日韩精品一区二区天天拍小说| 日本一区免费视频| 久久国产欧美日韩精品| 欧美日韩电影一区| 一区二区三区不卡视频在线观看| 国产传媒久久文化传媒| 日韩一级精品视频在线观看| 亚洲综合在线视频| a在线播放不卡| 久久久久久久综合日本| 免费久久精品视频| 欧美丰满少妇xxxbbb| 亚洲免费看黄网站| 成人精品视频.| 2021中文字幕一区亚洲| 蜜臀国产一区二区三区在线播放 | 狠狠色2019综合网| 91精品欧美综合在线观看最新| 一区二区免费在线| 一本久久精品一区二区| **网站欧美大片在线观看| 国产99精品在线观看| www国产成人免费观看视频 深夜成人网| 日韩国产欧美在线观看| 欧美片在线播放| 亚洲不卡av一区二区三区| 精品视频免费在线| 亚洲高清免费在线| 在线影院国内精品| 亚洲午夜激情av| 欧美日韩精品一二三区| 亚洲一区二区三区中文字幕| 在线观看日韩高清av| 一区二区三区欧美亚洲| 在线精品视频免费观看| 夜夜亚洲天天久久| 欧美在线免费视屏| 亚洲国产视频在线| **网站欧美大片在线观看| 99久久精品国产一区| 亚洲欧洲av一区二区三区久久| jlzzjlzz亚洲日本少妇| 中文字幕一区二区三区在线观看| 99久久777色| 一区二区三区日韩在线观看| 欧美色综合网站| 日韩高清一区在线| 精品日韩一区二区三区免费视频| 国产最新精品免费| 久久久99精品免费观看不卡| 成人午夜免费av| 亚洲码国产岛国毛片在线| 欧美日韩视频不卡| 免费成人性网站| 国产欧美一区二区三区在线看蜜臀 | 精品国产亚洲在线| 国产精品乡下勾搭老头1| 国产精品成人免费| 色悠久久久久综合欧美99| 亚洲一区二区欧美| 91精品国产aⅴ一区二区| 韩国精品免费视频| 国产精品拍天天在线| 欧美亚洲自拍偷拍| 麻豆精品国产91久久久久久| 欧美激情在线一区二区| 欧美影视一区二区三区| 免费一级欧美片在线观看| 久久精品视频免费| 91国模大尺度私拍在线视频| 奇米色777欧美一区二区| 国产亚洲精品资源在线26u| 色婷婷综合激情| 看片的网站亚洲| 国产精品久线在线观看| 欧美系列在线观看| 黄页视频在线91| 亚洲精品videosex极品| 日韩一级高清毛片| 97久久超碰国产精品电影| 视频一区视频二区中文| 国产亚洲欧美一级| 欧美在线观看视频在线| 国产在线精品一区二区夜色 | 欧美日韩国产一区| 国产夫妻精品视频| 亚洲国产精品麻豆| 国产欧美1区2区3区| 欧美伦理影视网| 不卡av电影在线播放| 日日摸夜夜添夜夜添精品视频| 国产日韩精品一区| 欧美精品久久久久久久多人混战| 高清不卡在线观看| 热久久免费视频| 亚洲日本va在线观看| www成人在线观看| 欧美日韩一级二级三级| 成人综合婷婷国产精品久久蜜臀| 日韩成人一区二区| 亚洲美女精品一区| 欧美极品aⅴ影院| 欧美一区二区三区视频免费播放| 91亚洲国产成人精品一区二区三| 久久精品国产亚洲a| 亚洲一二三四在线| 国产精品久久久久三级| 欧美成人性战久久| 欧美日韩免费一区二区三区视频| 成人激情文学综合网| 韩国v欧美v日本v亚洲v| 日韩电影在线一区| 一区二区三区美女视频| 国产精品日韩成人| 日韩欧美国产综合| 欧美日韩夫妻久久| 94色蜜桃网一区二区三区| 国产精品91xxx| 美国十次综合导航| 日韩精品欧美精品| 亚洲综合色视频| 亚洲免费高清视频在线| 国产欧美日韩视频在线观看| 欧美大片国产精品| 91.com在线观看| 欧美日韩在线播| 91久久线看在观草草青青| 成人免费毛片片v| 国产乱码精品一区二区三| 日本 国产 欧美色综合| 肉肉av福利一精品导航| 亚洲图片有声小说| 夜夜精品视频一区二区 | 欧美视频一区二| 欧美在线观看一二区| 日本精品一级二级| 91女神在线视频| jizzjizzjizz欧美| 9i看片成人免费高清| 成人av电影观看| jlzzjlzz欧美大全| 91一区二区在线| 在线观看成人免费视频| 欧美性受xxxx| 欧美另类高清zo欧美| 欧美挠脚心视频网站| 在线电影国产精品| 91精品国产日韩91久久久久久| 91麻豆精品久久久久蜜臀| 欧美精品少妇一区二区三区 | 国产一区二区三区久久久| 狠狠色综合播放一区二区| 国产美女久久久久| 成人午夜免费视频| 色综合天天综合在线视频| 日本二三区不卡| 欧美日韩精品一区二区三区四区 | 久久精品国产99| 麻豆精品精品国产自在97香蕉| 国内外精品视频| 粉嫩欧美一区二区三区高清影视| 99精品久久只有精品| 日本久久一区二区三区| 在线亚洲欧美专区二区| 欧美精品高清视频|