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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2008, 23:05   #1
Hero
 
Регистрация: 03.03.2008
Сообщений: 4
По умолчанию Корректный ли код?

Программисты, обращаюсь к вам, является ли следующий простой код корректным?

Код:
while true do
    begin
     Form1.Image2.Canvas.MoveTo(0,Form1.Image2.Height div 2);
     Form1.Image2.Update;
     Form1.Image2.Canvas.LineTo(Form1.Image2.Width,Form1.Image2.Height div 2);
     Form1.Image2.Canvas.FillRect(Rect(0,0,Form1.Image2.Width,Form1.Image2.Height));
    end;
Hero вне форума Ответить с цитированием
Старый 03.03.2008, 23:09   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Нет не является, так как это бесконечный цикл
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 03.03.2008, 23:35   #3
Hero
 
Регистрация: 03.03.2008
Сообщений: 4
По умолчанию

Я имею введу будет ли работать код, если цикл будет повторятся бесконечно
Hero вне форума Ответить с цитированием
Старый 04.03.2008, 01:04   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

если с синтаксисом все впорядке, то будет
pu4koff вне форума Ответить с цитированием
Старый 04.03.2008, 01:24   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Хоть убейте, не вижу смысла хотя бы в повторном выполнении этой последовательности операторов...
И в первый раз уже произодится полная заливка канваса...
И зачем это вообще нужно? Это что - новый способ очистки битмапа от изображения?
И как автор собирается выходить из этого цикла?
mihali4 вне форума Ответить с цитированием
Старый 04.03.2008, 19:35   #6
Hero
 
Регистрация: 03.03.2008
Сообщений: 4
По умолчанию

Просто в моей проге эта последовательность часто используется. А бесконечный цикл только чтобы смоделировать частоту.

У меня вопрос в следующем: почему, когда работает этот цикл или трудоемкая программа, нажимая несколько раз на форму, приводит к зависанию проги?
Hero вне форума Ответить с цитированием
Старый 04.03.2008, 19:39   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Потому, что программа не обрабатывает сообщения, которые ей поступают. Вставь строчку Application.Processmessages, но код действительно индийский
пыщь
JTG вне форума Ответить с цитированием
Старый 04.03.2008, 20:36   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Hero Посмотреть сообщение
Просто в моей проге эта последовательность часто используется. А бесконечный цикл только чтобы смоделировать частоту.
ты тут собираеся найти место для оптимизации чтоль?
pu4koff вне форума Ответить с цитированием
Старый 04.03.2008, 23:49   #9
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Если на то пошло поместите данный код в поток и то после такой последовательности выполнения команд программа будет виснуть
BOBAH13 вне форума Ответить с цитированием
Старый 07.03.2008, 03:42   #10
Hero
 
Регистрация: 03.03.2008
Сообщений: 4
По умолчанию

Вообщем, все работает после добавления строки Application.Processmessages.

Всем спасибо.
Hero вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корректный выход Constellation БД в Delphi 3 07.12.2007 15:47