Делаю игрушку - эмулятор консоли. Команды свои, с этим понятно. А вот что бы мемо выглядела как консоль... т.е. если я определяю префикс в строке (pesothnica@user>) каретка переводиться на следующую строку. Вернуть обратно не получается. листинг ниже...
Procedure SetCaretPosition(memo:TMemo; x,y:integer);
var i:integer;
begin
i := SendMessage(memo.Handle, EM_LINEINDEX, y, 0) + x;
SendMessage(memo.Handle, EM_SETSEL, i, i);
end;
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
var
LineNumber:integer;
begin
if key=#13 then
begin
LineNumber:=Memo1.Perform(EM_LINEFROMCHAR, -1, 0);
form1.Memo1.Lines[Memo1.Lines.Count-1]:='pesothnica@user> ';
SetCaretPosition(form1.Memo1,16 ,lineNumber+1);
end;
end;
может у кого какие идеи есть?