Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с алгоритмом пожалуйста


Страницы:   1 2

158963 ©   (2003-02-06 12:05:00) 

Уже второй день мучаюсь, никак не сделаю. Многие пользуются мирком или qchat. Там есть такая функция, если в поле где вводишь текст для отправления нажать кнопку вверх или вниз, то перелистывется история сообщений и это сообщение можно отправить повторно, но там кол-во сообщений хранящихся в памяти мало, только штку 50, потом они затираются друг другом.
Как реализовать такойже алгоритм? Я решил использовать listbox для хранения посланных строк и ограничить число сообщений в памяти 30. Спасибо.


158963   (2003-02-06 12:34:00) [21]

Да это все понятно, но оно как бы сказать не совсем рабоче:)))
Вот мой код:
при событии onkeypress на поле для ввода текса:
if key=#13 then begin
if (Trim(msg.text)) <> "" then begin
if listbox1.Items.Count <= 4 then begin
listbox1.Items.Add(msg.Text);
sn:=listbox1.Items.Count-1;
end
else begin
listbox1.Items.Delete(p);
listbox1.Items.Insert(p,msg.text);
sn:=p;
if p < 4 then
p:=p+1
else begin
ky:=1;
p:=0;
end;
end;
end;
вот при нажатии клавиши вверх:
if key=38 then begin
if sn <> -1 then begin
msg.Text:=listbox1.Items.Strings[sn];
if (sn = 4) and (ky=1) then
sn:=0
else
begin
if sn=0 then
sn:=4
else
sn:=sn-1;
end;
end;
end;
Пашет, но есть логическая ошибюка :( Я уже запутался


Jeer   (2003-02-06 12:14:00) [22]

Сделай стек с использованием методов TListbox.Items
Insert, Delete.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо