![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как намутить такое, что бы............................
Man In Red © (2001-12-15 20:12:00)У меня такой вопрос:
На форме лежат RichEdit и Timer. Так вот, в RichEdite, есть текст,
и таймер каждую секунду по одному символу в тексте выделяет.
1. Как сделать, чтобы когда выделился последний символ в тексте, таймер автоматически останавливался?
2. И как сделать что бы каретка переходила на новую строку ( Если конечно есть еще одна строка, а если нет то таймер останавливался, конечно ), если выделенный символ был последним в строке?
Очень прошу, помогите, заранее благодарен!
Man In Red (2001-12-16 13:29:00) [1]НЕТ, ТЫ НЕ ПОНЯЛ!
КАЖДУЮ СЕКУНДУ ВЫДЕЛЯЕТСЯ ТОЛЬКО ОДИН СИМВОЛ, СНАЧАЛА ПЕРВЫЙ ВЫДЕЛИЛСЯ ПОТОМ ВТОРОЙ, ТРЕТИЙ И Т. Д.....................
KilkennyCat (2001-12-16 06:56:00) [2]Елементарно. Для стандартного RichEdit. (Delphi 5 tested)
procedure TForm1.Button1Click(Sender: TObject); // нажатие кнопки
begin
richedit1.SelStart := 0; // устанавливаем каретку в начало
richedit1.SetFocus; // отнимаем фокус у кнопки
timer1.Enabled := true // запускаем!
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
a : longint;
begin
a := richedit1.SelLength; // сохраним старое значение
//увеличиваем выделение на один символ
richedit1.SelLength := richedit1.SelLength + 1;
// проверяем упирание в конец строки
if a = richedit1.SelLength then begin
// пытаемся перейти на другую
richedit1.SelLength := richedit1.SelLength + 2;
// Проверяем, не уперлись ли при переходе
if a = richedit1.SelLength then begin
// уперлись, однако. Значит, конец текста. Отключаем таймер.
timer1.Enabled := false;
// сообщаем юзеру, а то он не догадается....
showmessage("Баста, карапузики!")
end
end
end;