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

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

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]

Ошибка где-то в ином месте.


Наверх

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