![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Canvas
ArtemESC © (2006-08-09 23:49:00)Написал так
for i := 1 to length(str) do
begin
Canvas.TextOut(i * 20, 100, str[i]);
Sleep(30);
Application.ProcessMessages;
end;
Потом убралApplication.ProcessMessages;результат один -
выводиться только первая буква...
Loginov Dmitry (2006-08-10 20:35:00) [1]Выполняй необходимую отрисовку на TBitmap, а после (или до :) Sleep и ProcessMessages копируй на канву формы (Form1.Canvas.Draw(X, Y, Bitmap)). Попробуй также Form1.Update вместо ProcessMessages.
antonn (2006-08-10 18:02:00) [2]ArtemESC © (10.08.06 0:07) [2]
len := length(str);
for i := 1 to len do
begin
можно простоfor i := 1 to length(str) do
ArtemESC (2006-08-10 15:39:00) [3]Ну таймер так таймер...
ASoft (2006-08-10 13:26:00) [4]идеальный вариант в этом случае (смотря на каком компе) Sleep(5000). :-) последний sleep убрать.
Рисует ровно, но ме-едленно :-)
а проще [9]
Сергей М. (2006-08-10 13:04:00) [5]Ну-ну
ArtemESC (2006-08-10 13:01:00) [6]Сергей М. © (10.08.06 13:00) [11]
Все понял в чем баг, слишком маленький промежуток в параметре Sleep(30);, видимо не успевает отрисовываться...
Сергей М. (2006-08-10 13:00:00) [7]
> ArtemESC © (10.08.06 12:41) [10]
А че на sleep'е свет клином сошелся ...
ArtemESC (2006-08-10 12:41:00) [8]Сергей М. © (10.08.06 12:38) [9]
А че без таймера никак...
Сергей М. (2006-08-10 12:38:00) [9]Таймер тебе в руки)
Wood (2006-08-10 12:38:00) [10]ttimer?
ArtemESC (2006-08-10 12:37:00) [11]Сергей М. © (10.08.06 12:08) [6]
Телетайп - не знаю что-такое, хочу просто анимацию напечатывания
слова на канвасе, сделал так, вроде должно работать, но ..
Сергей М. (2006-08-10 12:08:00) [12]
> ArtemESC © (10.08.06 12:02) [5]
А зачем вся эта беда с Proceswsmessages() понадобилась ?
Телетайп пытаешься изобразить что ли ?
ArtemESC (2006-08-10 12:02:00) [13]ASoft (10.08.06 03:20) [4]
Сначала печатается W
А после Sleep(5000); все остальное...
ASoft (2006-08-10 03:20:00) [14]ну, мож не совсем, с не ровной задержкой, но печатет все буквы
ASoft (2006-08-10 03:17:00) [15]нормально все работает, проверил :-)
ArtemESC (2006-08-10 00:07:00) [16]Джо © (09.08.06 23:59) [1]
Вот привожу всю часть после, которой это должно быть видно полностью...
str := 'WORD';
len := length(str);
for i := 1 to len do
begin
Canvas.TextOut(i * 50, 100, str[i]);
Sleep(30);
Application.ProcessMessages;
end;
Sleep(5000);
Джо (2006-08-09 23:59:00) [17]Ошибка где-то в ином месте.