Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.26;
Скачать: CL | DM;

Вниз

Лимит строк в RichEdit   Найти похожие ветки 

 
Greenchel ©   (2006-11-09 11:46) [0]

Как задать лимит строк в RichEdit, например, чтобы при достижении 50 строк те что в конце стирались бы.


 
Vlad Oshin ©   (2006-11-09 12:06) [1]

procedure TForm1.RichEdit1Change(Sender: TObject);
begin
if    Richedit1.Lines.Count>5 then Richedit1.Lines.Delete(0);


 
Anatoly Podgoretsky ©   (2006-11-09 12:06) [2]

> Greenchel  (09.11.2006 11:46:00)  [0]

Таких свойств или сообщений не существует


 
RASkov   (2006-11-09 12:08) [3]


> Vlad Oshin ©   (09.11.06 12:06) [1]

Так будут стираться в начале


 
Palladin ©   (2006-11-09 12:18) [4]

Ну подумать и догадаться что для конца будет

Richedit1.Lines.Delete(Richedit1.Lines.Count-1);

совсем соображалки нехватает?


 
Palladin ©   (2006-11-09 12:19) [5]


> RASkov   (09.11.06 12:08) [3]

упс... пп :) думал что это автор написал :)


 
Greenchel ©   (2006-11-09 12:20) [6]

Выдаёт ошибку: RichEdit line insertion error


 
Vlad Oshin ©   (2006-11-09 12:23) [7]

действительно...
так ведь удаляет

ну так смотреть, обработать, можть что еще


 
Greenchel ©   (2006-11-09 12:24) [8]

А у меня даже не удаляет :D Просто пишет ошибку и всё ))


 
Greenchel ©   (2006-11-09 12:27) [9]

Начало удаляться :D
Не получается отключить ошибку через
try...
except...


 
RASkov   (2006-11-09 13:28) [10]


> Greenchel ©   (09.11.06 12:27) [9]

Покажи свой "ограничитель строк" Т.е. кусок кода где ты пытаешься решить проблему. Подправим...


 
Greenchel ©   (2006-11-09 15:21) [11]

procedure TForm1.RichEdit1Change(Sender: TObject);
begin
if Richedit1.Lines.Count>5 then Richedit1.Lines.Delete(0);
end;


Строку удаляет при этом выдаёт:
RichEdit line insertion error


 
Ketmar ©   (2006-11-09 15:49) [12]

>[11] Greenchel(c) 9-Nov-2006, 15:21
>RichEdit line insertion error
D7. не выдаёт. печатаю, удаляет. курсор, правда, прыгает в начало, но это уже домашнее задание.


 
Greenchel ©   (2006-11-09 15:54) [13]


> D7. не выдаёт. печатаю, удаляет. курсор, правда, прыгает
> в начало, но это уже домашнее задание.

1) У меня тоже D7, но ошибку как выдавал так и выдаёт
2) Курсор прыгающий в начало уже не проблема, здесь меня этому научили :D


 
Ketmar ©   (2006-11-09 16:05) [14]

>[13] Greenchel(c) 9-Nov-2006, 15:54
>1) У меня тоже D7, но ошибку как выдавал так и выдаёт
значит, ошибка не там.


 
Greenchel ©   (2006-11-09 16:26) [15]

хм... но появляется она только при достижении заданного порога - если больше 5 строк


 
Gloomer ©   (2006-11-09 16:27) [16]


> Greenchel ©   (09.11.06 16:26) [15]
> хм... но появляется она только при достижении заданного
> порога - если больше 5 строк

А где в приведенном примере 17-ая строка типа
RichEdit1.Lines.Add("...") ???


 
Greenchel ©   (2006-11-09 16:31) [17]


> А где в приведенном примере 17-ая строка типа
> RichEdit1.Lines.Add("...") ???

При чём здесь это? O_o


 
Gloomer ©   (2006-11-09 16:36) [18]


> Greenchel ©   (09.11.06 16:31) [17]
При чём здесь это? O_o

Хочешь сказать, что ошибка происходит не при использовании метода Insert? (Add так же его использует)


 
Greenchel ©   (2006-11-09 16:41) [19]

Я добавляю строку так:
AddColoredLine(RichEdit1, Edit1.Text, ColorBox1.Selected);
Через процедуру:
procedure AddColoredLine(ARichEdit: TRichEdit; AText: string; AColor: TColor);
begin
with ARichEdit do
 begin
   SelStart := Length(Text);
   SelAttributes.Color := AColor;
   Lines.Add(AText);
 end;
end;


 
Gloomer ©   (2006-11-09 16:45) [20]

Ответа на вопрос [0] так и не было:
while Richedit1.Lines.Count>=50 do
 Richedit1.Lines.Delete(Richedit1.Lines.Count-1);


 
Gloomer ©   (2006-11-09 16:46) [21]

procedure AddColoredLine(ARichEdit: TRichEdit; AText: string; AColor: TColor);
begin
with ARichEdit do
begin
  SelStart := Length(Text);
  SelAttributes.Color := AColor;
  while Lines.Count>48 do
     Lines.Delete(Lines.Count-1);
  Lines.Add(AText);
end;
end;

???


 
Greenchel ©   (2006-11-09 16:52) [22]


> Gloomer

ЫЫЫ, спасибо :)
вот тот кусок который мне был нужен
while Lines.Count>5 do
Lines.Delete(0);


 
Ketmar ©   (2006-11-09 16:54) [23]

>[22] Greenchel(c) 9-Nov-2006, 16:52
>вот тот кусок который мне был нужен
ах, если бы... не это тебе надо, совсем не это...


 
Greenchel ©   (2006-11-09 16:55) [24]


> Ketmar

Почему? O_o кажется всё работает... Первые строчки при достижении предела стираются... Правда для чата мне нужно немножко другое: надо чтобы стиралась не строка а фраза участника, но сойдёт и так :)


 
Gloomer ©   (2006-11-09 16:59) [25]

> Greenchel ©   (09.11.06 16:52) [22]
>вот тот кусок который мне был нужен
while Lines.Count>5 do
Lines.Delete(0);

Странные представления о конце...

> Ketmar ©   (09.11.06 16:54) [23]
> ах, если бы... не это тебе надо, совсем не это...

точно - для начала надо научиться корректно задавать вопросы :-)


 
Greenchel ©   (2006-11-09 17:01) [26]


> Gloomer

Представления о конце нормальные, в чате сообщения идут сверху вниз, так получилось ))



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

Текущий архив: 2006.11.26;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.047 c
15-1162578731
TUser
2006-11-03 21:32
2006.11.26
Свобода собраний


2-1163012810
Greenchel
2006-11-08 22:06
2006.11.26
Транслит


6-1151636164
Lex_!
2006-06-30 06:56
2006.11.26
Получение имени хоста по IP


2-1162888716
V.I.P
2006-11-07 11:38
2006.11.26
выборка по дате


2-1163097500
Mr tray
2006-11-09 21:38
2006.11.26
Как избежать мигания при прорисовке?