Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

Как мне из Memo сделать наподобие терминалки?   Найти похожие ветки 

 
MadGhost ©   (2005-01-28 22:51) [0]

приветствую многоуважаемые гуру.
вопрос у меня возник следующий :( сам чет не могу решить, хотя попытки продолжаются.

вопрос в следующем.
на основе сокетов создал две формочки с Мемо, клиент цепляется к серверу отсылает скажем слово connect, сервер на это отсылает клиенту login: и ждет от него ввода логина, потом пароля. логин и пароль, и последующие команды надо вводить в Мемо, по другому получается не красиво увы :( как мне организовать сабж? т.е. ввести в мемо логин, нажать ентер, и чтобы обработчик ентер распознал что я ввел только что логин, т.е. получается какую то разность между предыдущим количеством символов в мемо и текущую, вырезает, и отсылает серверу.
Как установить курсор у мемо в конец, как определить длину мемо? ну и вообще соображения на эту тему, был бы признателен.


 
palva ©   (2005-01-29 01:32) [1]

Проще сделать, чтобы ввод осуществлялся в фиксированную нижнюю строку, а потом дублировался и скроллировался в мемо, как это сделано в FAR. Конечно, тогда нельзя ходить курсором по уже выполненным командам и нажимать на Ентер, как это можно делать в командном окне FoxPro, но зато не придется реализовывать сложную и непривычную логику обработки таких ентеров.


 
MadGhost ©   (2005-01-29 02:28) [2]

ну в принципе то я уже сделал правда через заднее место :).
ну не знаю как вычислить длину memo кроме как

var stroka:String;
 size:Integer;
begin
stroka:=Memo1.Text;
size:=Length(stroka);
end;

в общем когда начиная ввод вычисляю длину Memo потом сравниваю после ввода, вычитаю, через Copy в отдельную переменную вот как бы и ввод получается, если длина не изменилась или стала меньше, ничего не делаю.

А как понять фиксированая нижняя строка?


 
aus   (2005-01-29 04:43) [3]

MadGhost ©   (29.01.05 2:28) [2]
А как понять фиксированая нижняя строка?


TEdit под TMemo.
Можно еще попробовать отслеживать нажатия клавишь, проще чем работа с мемо, на мой взгляд.


 
GrayFace ©   (2005-01-29 05:15) [4]

aus   (29.01.05 4:43) [3]
Можно еще попробовать отслеживать нажатия клавишь, проще чем работа с мемо, на мой взгляд.

А выводить?


 
Anatoly Podgoretsky ©   (2005-01-29 14:09) [5]

Что выводить? Не прояснишься?


 
Knight ©   (2005-01-29 19:48) [6]

Ввесли переменную, типа, StartCmdStr и перед вводом новой команды присваивать ей значение Memo1.SelStart;
В KeyPress проверять алфавитные клавиши, в KeyDown - остальные, не забывая, проверять, чтобы Memo1.SelStart было меньше StartCmdStr.

При Key=13 брать команду, добавлять новую строку с приглашением, сбрасывать начальную позицию...

CMD:=Copy(Memo1.Lines.Text,CmdStartPos+1,Length(Memo1.Lines.Text)-CmdStartPos);
Memo1.Lines.Append("TERM>");
CmdStartPos:=Memo1.SelStart; //Length(Memo1.Lines.Text);


Обязательно сделать Мемо чёрного цвета, а фонт - зелёным... :)


 
Knight ©   (2005-01-29 19:53) [7]

Memo1.SelStart было больше StartCmdStr
// думаю, что все поняли, но на всякий случай... :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.035 c
1-1107078546
MakedoneZ
2005-01-30 12:49
2005.02.13
Что означает ошибка "Invalid variant type convertion".


14-1106384467
Серый
2005-01-22 12:01
2005.02.13
Смешная ссылка


14-1105941232
WondeRu
2005-01-17 08:53
2005.02.13
Почему институт брака себя не изжил???


1-1107157075
aleshap
2005-01-31 10:37
2005.02.13
Как программно добавить пакеты!


14-1106230703
Alexander Panov
2005-01-20 17:18
2005.02.13
Питерцы, старый телевизор нужен?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский