Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2012, 22:09   #11
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
if q >= length(s)
Если q станет больше, чем длина строки, то будет Access Violation
Вадим Мошев вне форума Ответить с цитированием
Старый 16.12.2012, 22:12   #12
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Цитата:
Если q станет больше, чем длина строки, то будет Access Violation
Но такого не произойдет, т.к. таймер будет выключен уже при q, равном длине строки.
Согласен, что некоторая опасность есть - если будем изменять q еще где-либо.
Можно написать строгое равенство.
Код:
const
  s = 'Hello';

var
  q: integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  q := 0;
  Timer1.Enabled := true;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  if q <= length(s) then
    canvas.TextOut(10, 10, copy(s, 1, q));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  inc(q);
  if q = length(s) then
    Timer1.Enabled := false;
  repaint;
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 16.12.2012, 22:24   #13
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Ребят да, все заработало, но теперь толи в моей программе косяк, толи так и должно быть...вывел я букву, а когда вывожу следующую предыдущая пропадает.....как быть?
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 16.12.2012, 22:27   #14
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

все разобрался, событие repaint к этому приводит

Огромное спасибо что откликнулись!)
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 16.12.2012, 22:30   #15
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от McFrey Посмотреть сообщение
все разобрался, событие repaint к этому приводит
Так получается, что проблема-то не устранена(?)
Вадим Мошев вне форума Ответить с цитированием
Старый 16.12.2012, 22:32   #16
McFrey
Форумчанин
 
Аватар для McFrey
 
Регистрация: 15.10.2011
Сообщений: 306
По умолчанию

Вадим Мошев, нет нет, дальше я сам уже все исправил, просто не вызываю перерисовку формы, а вызываю метод который просто выводит на форму символы, все работает)) еще раз большое спасибо
Если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое...
McFrey вне форума Ответить с цитированием
Старый 17.12.2012, 12:51   #17
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

А на каком алгоритме остановился? На старом или на таймере?
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Sleep в потоке Florento Общие вопросы Delphi 13 21.06.2011 21:54
функция Sleep() ^Angel^ Общие вопросы C/C++ 9 07.05.2011 13:27
Sleep(50); за 63 мс... или за 47... Teksa Общие вопросы C/C++ 8 20.07.2010 08:34
Цикл for. Реализация sleep (Delphi) на C# Casper-SC Общие вопросы .NET 2 31.12.2009 15:06
Функция Sleep(); VadEr Общие вопросы Delphi 6 10.09.2009 17:45