unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure GetMemoRowCol(M: TMemo; var Row, Col: LongInt);
begin
Row := SendMessage(M.Handle, EM_LINEFROMCHAR, M.SelStart, 0);
Col := M.SelStart-SendMessage(M.Handle, EM_LINEINDEX, Row, 0);
end;
procedure SetMemoRowCol(M: TMemo; Row, Col: Integer);
begin
M.SelStart := SendMessage(M.Handle, EM_LINEINDEX, Row, 0) + Col;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
SetMemoRowCol(Memo1, 20, 22);
Memo1.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// cursor¸¦ ¿øÇÏ´Â À§Ä¡·Î º¸³½ ÈÄ EM_SCROLLCARET ¸Þ½ÃÁö¸¦
// Memo¿¡ º¸³»¾î caretÀÌ À§Ä¡·Î scroll ½ÃŲ´Ù
// wParam(0), lParam(0) ÆÄ¶ó¹ÌÅÍ´Â ¹«½ÃµÈ´Ù
SendMessage(Memo1.handle, EM_SCROLLCARET, 0, 0);
Memo1.SetFocus;
end;
end.
|
|