Cześć. Pisze program, który w zamiarze ma być wielowarstwowy, i warstwa logiki ma być rozdzielna od warstwy prezentacji/gui. Generalnie chce na razie zrobić warstwe prezentacji tekstową, żeby móc testować, obsługiwać prowizorycznie. Nie chce używać cmd, tylko własnej aplikacji. Chciałem użyć TMemo, jednak z zachowaniem historii wpisanych fraz, i z możliwością pisania w ostatniej lini tylko i wyłącznie. Napisałem zdarzenie kontrolujące ReadOnly kontrolki.
procedure TMainForm.ConsoleKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_UP then
begin
if Console.CaretPos.y+1 <> Console.Lines.Count then
Console.ReadOnly := true;
end
else if Key = VK_DOWN then
begin
if Console.CaretPos.y+1 = Console.Lines.Count then
Console.ReadOnly := false;
end
end;
Jednak zauważam, że czasami po "wjechaniu" strzałką na ostanie pole, okazuje się, że nie mogę pisać, bo Lines.Count jest większy niż przed momentem. Dlaczego tak się dzieje, ew jak inaczej rozwiązać mój problem - tzn. konsole w kontrolce ??
Z góry dzięki za odpowiedz.