![]() |
|
#1
|
|||
|
|||
![]() Сейчас при вводе в едит 1,2,1,2,3,2,1,2,1,1,1 появляется в мемо -красн- т.е. при суммарном количестве
а задача предстоит, чтобы после Пяти! одинаковых цифр появлялся цвет к примеру 1,2,2,2,1,2,2,3,3,3,3,3,1,2 появляется в едит4 -зелен- или 1,1,1,2,2,2,1,2,3,3,1,1,1,1,1,2 -красн- в едит2 Честно говоря зациклился в этих циклах ![]() архив прилагается заранее благодарю! |
Этот пользователь сказал Спасибо plazmaser за это полезное сообщение: | ||
MotoArhangel (03.02.2015)
|
#2
|
|||
|
|||
![]() Исходник не смотрел. Скажу одно. можно и без циклов
![]() Используем case of end для подсчета количества той или иной цифры + процедура допустим NextCh. ![]() Как то так: Код:
case str of 1: begin что то делаем; NextCh; end; ,: begin что то делаем; NextCh; end; ..... end Для мемо делал так Код:
procedure NextCh;{ Читать следующий символ } begin if Line = MainForm.MemoListing.Lines.Count then Ch := chEOT // если достигнут конец текста, то в Ch заносим признак "конец текста" else if Pos > Length(MainForm.MemoListing.Lines.Strings[Line]) then // если достигнут конец строки, то ... begin Ch := chEOL; // в Ch заносим признак "конец строки" Line := Line + 1; // и переходим к следующей строке lineNum:=line; //Сохраняем номер строки Pos := 1; // Установили начальную позицию в новой строке end else // иначе обрабатываем следующий символ в строке begin Ch := MainForm.MemoListing.Lines.Strings[Line][Pos]; Pos:= Pos+ 1; //Переходим на новую позициию lineNum:=line+1; //Сохраняем номер строки end; end; Последний раз редактировалось MotoArhangel, 03.02.2015 в 17:11. |