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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2012, 11:32   #1
demiancz
Форумчанин
 
Регистрация: 28.09.2010
Сообщений: 246
По умолчанию Остановить цикл при условии

Есть такой код:

Код:
procedure TForm1.N9Click(Sender: TObject);
var
n: integer;
begin
n:=1;
while n <= 2 do
if (Form1.sBitBtn1.Caption = '') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form1.sBitBtn1.Caption:=(PopupMenu1.PopupComponent as TsBitBtn).Caption;
break;
end
else
if (Form1.sBitBtn2.Caption = '') and
(PopupMenu1.PopupComponent is TsBitBtn) then begin
Form1.sBitBtn2.Caption:=(PopupMenu1.PopupComponent as TsBitBtn).Caption;
break;
end;
 
if (Form1.sBitBtn1.Caption <> '') and
(Form1.sBitBtn2.Caption <> '') then
ShowMessage('Нет свободного места для добавления в Избранное');
end;
Суть его в том, что при нажатии программа должна переименовать кнопку на ту которую выбрал пользователь. Так вот код работает, но когда нет свободных кнопок нужно что бы появлялось сообщение что нет свободных кнопок и ничего не переименовывалось. Вот здесь и проблема. сообщение появляется, но потом программа зависает и выключить ее можно только через Диспетчер задач. Помогите пожалуйста решить проблему.
Смотреть фильмы HD Фильмы для планшетов
demiancz вне форума Ответить с цитированием
Старый 03.09.2012, 11:54   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Зачем тут цикл вообще?
eval вне форума Ответить с цитированием
Старый 03.09.2012, 11:56   #3
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Значение переменной n внутри цикла надо увеличивать самому, например, так: Inc(N). Цикл в предусловием (while) самостоятельно этого не делает.
Кстати, присоединяюсь к вопросу eval.
Прик вне форума Ответить с цитированием
Старый 03.09.2012, 15:04   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

ТС, откройте для себя TActionManager - очень облегчает жизнь особенно при контроле состояний кнопок от каких-либо событий.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить цикл или завершить программу. Зод Общие вопросы Delphi 11 08.05.2012 11:28
Остановить процес при условии demiancz Общие вопросы Delphi 1 12.01.2012 01:17
Остановить цикл for basten Общие вопросы C/C++ 1 30.03.2010 11:40
Остановить цикл mavlon_m Общие вопросы Delphi 4 04.08.2009 17:00
как корректно остановить цикл. Alar Общие вопросы Delphi 0 29.10.2006 10:42