Показать сообщение отдельно
Старый 12.04.2009, 14:24   #1 (permalink)
abv-lam
Новичок
 
Регистрация: 12.04.2009
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Программа эмулятор консоли - помогите (Delphi)

Делаю игрушку - эмулятор консоли. Команды свои, с этим понятно. А вот что бы мемо выглядела как консоль... т.е. если я определяю префикс в строке (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;

может у кого какие идеи есть?
abv-lam вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070