Home
What's New
Delphi 3.0 Tips
Questions
Development Tools
Links

Makeing a "Goto Line Number" dialog for a Memo

procedure TForm1.SearchGotoLineNumberMnuClick(Sender: TObject);
var
  LineCount, LineNum : word;
  LineNumStr : string;
begin
  if not InputQuery ('Goto', 'Input line number to goto', LineNumStr) then exit;

  LineNum := Int (LineNumStr);
  if LineNum = 0 then begin
    ShowMessage ('Inavlid Line Number');
    exit;
  end;

  LineCount := Memo1.Perform (EM_GetLineCount, 0, 0);

  if LineNum > LineCount then
    LineNum := LineCount;

  Memo1.SelStart :=
    Memo1.Perform (EM_LineIndex, LineNum - 1, 0);

  Memo1.Perform (EM_ScrollCaret, 0, 0);
end;