在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;
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.
// 打印图片 // 下面的代码中,由于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;
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;
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.
// 下面的代码中,由于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;