如何用FindDialog和ReplaceDialog对Memo中的内容进行查找和删除,如何将Image中的图片打印出来?

解决方案 »

  1.   

    查找、替换对话框的使用只要按一下F1键就有,并且Demo中也有。
      

  2.   

    用ReplaceDialog对Memo中的内容进行和替换,不是删除,不好意思写错了。
      

  3.   

    在ReplaceDialog1的OnReplace事件中写如下代码:
    procedure TForm1.ReplaceDialog1Replace(Sender: TObject);var
      SelPos: Integer;
    begin
      with TReplaceDialog(Sender) do
      begin
      { Perform a global case-sensitive search for FindText in Memo1 }
        SelPos := Pos(FindText, Memo1.Lines.Text);
        if SelPos > 0 then
        begin
          Memo1.SelStart := SelPos - 1;
          Memo1.SelLength := Length(FindText);
          { Replace selected text with ReplaceText }
          Memo1.SelText := ReplaceText;
        end
        else MessageDlg(Concat('Could not find "', FindText, '" in Memo1.'), mtError, [mbOk], 0);  end;end;
      

  4.   

    procedure TForm1.N20Click(Sender: TObject);
             var
      FoundAt: LongInt;
      StartPos, ToEnd: Integer;
    begin
      with RichEdit1 do
      begin
    if SelLength <> 0 then
    StartPos := SelStart + SelLength
        else
    StartPos := 0
    ToEnd := Length(Text) - StartPos;
    FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
        if FoundAt <> -1 then
        begin
          SetFocus;
          SelStart := FoundAt;
          SelLength := Length(FindDialog1.FindText);
        end;
      end;
    end;
    procedure TForm1.FindDialog1Find(Sender: TObject);
     var
      FoundAt: LongInt;
      StartPos, ToEnd: Integer;
    begin
      with RichEdit1 do
      begin
        if finddialog1.Execute    then begin
    if SelLength <> 0 then
    StartPos := SelStart + SelLength
        else
    StartPos := 0;
    ToEnd := Length(Text) - StartPos;
    FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
        if FoundAt <> -1 then
        begin
          SetFocus;
          SelStart := FoundAt;
          SelLength := Length(FindDialog1.FindText);
        end;
      end;
    end;
    end;
    end.
      

  5.   

    // 打印图片
    // 下面的代码中,由于Image1中的图片是jpg格式,所以有一个把它转化为bmp的步骤。如果图片本身是bmp,则不需要这一步procedure TForm1.Button1Click(Sender: TObject);
    var
      Bmp: TBitmap;
      Rect: TRect;
    begin
      Bmp := TBitmap.Create;
      try
        Bmp.Assign(Image1.Picture.Graphic);
        with Printer do
        begin
          Rect := Bmp.Canvas.ClipRect;
          BeginDoc;
          Canvas.CopyRect(Rect, Bmp.Canvas, Bmp.Canvas.ClipRect);
          EndDoc;
        end;
      finally
        FreeAndNil(Bmp);
      end;
    end;