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