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

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

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

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

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

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

В программе есть компоненты checkbox и edit. В них несколько элементарных операторов. В процессе работы программы этим компонентам присваивается свойство .visible:=falshe. Затем они вновь становятся true, но заполнены предыдущим цветом. Проверка показывет, что после обновления, процедуры checkboxonClik получают управление, хоть это полностью исключается логикой программы! Они могут срабатывать, только в случае события! Мистика! Кто может что-то обьяснить?
Сергей
Sergee вне форума Ответить с цитированием
Старый 12.01.2009, 23:37   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
но заполнены предыдущим цветом. Проверка показывет, что после обновления,
Изменение свойства VISIBLE такого эффекта не дает - искать нужно в другом месте.
Вот эти фразы объясните. При чем тут цвет? Какое такое обновление? Обновление чего?
(В программировании мистика исключена, ее заменяет неверная логика. Михалыч)

Последний раз редактировалось mihali4; 13.01.2009 в 02:02.
mihali4 вне форума Ответить с цитированием
Старый 13.01.2009, 00:01   #3
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Я вообще ничего не понял из прочтеного...
QunneD вне форума Ответить с цитированием
Старый 13.01.2009, 01:07   #4
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

QunneD, не ты один
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 13.01.2009, 01:51   #5
Pyton
Пользователь
 
Аватар для Pyton
 
Регистрация: 18.12.2008
Сообщений: 47
По умолчанию

Если я тебя правильно понял, то цвет вообще не изменяется или на твои объекты во время "невидимости" твои процедуры не действуют и когда visible снова true то ты обнаруживаешь старый,неизмененный цвет.
По логике вещей, одно из двух,
И объясни, о каком цвете идет речь?
Pyton вне форума Ответить с цитированием
Старый 14.01.2009, 21:26   #6
Sergee
 
Регистрация: 12.01.2009
Сообщений: 4
По умолчанию

Огромное спасибо за внимание к моей проблемме! Чувство плеча единомышденника дорогого стоит!

Фрагмент программы в который глубоко вчитываться не обязательно:

Реакция на кнопку проверка:

procedure TForm1.Button3Click(Sender: TObject);
begin
i:=1;
label7.Caption:='';
label8.Caption:='';
while mpl[i]=0 do inc(i);
if mpl[i]=mslu[nvp] then begin label1.Caption:='Правильно';
vicherk;inc(kpo);
if (kpo=5) and (mist=0) then risris;end
else begin label1.Caption:='Heправильно';inc(m ist);end;
str(mpl[i],s1);
str(mslu[nvp],s2);
str(nvp,s3);
edit5.Color:=clwindow;
edit2.Color:=clwindow;
edit3.Color:=clwindow;
edit4.Color:=clwindow;
edit1.Color:=clwindow;
edit6.Color:=clwindow;
edit7.Color:=clwindow;
edit8.Color:=clwindow;
edit9.Color:=clwindow;
edit10.Color:=clwindow;
end;

Реакция на клик по CheckBox (их 10 шт на форме):
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
nvl:=1;
mpl[1]:=1;
mpl[2]:=0;
mpl[3]:=0;
mpl[4]:=0;
mpl[5]:=0;
label1.Caption:='';
checkbox2.Checked:=false;
checkbox3.Checked:=false;
checkbox4.Checked:=false;
checkbox5.Checked:=false;
edit1.Color:=cllime;
edit2.Color:=clwindow;
edit3.Color:=clwindow;
edit4.Color:=clwindow;
edit5.Color:=clwindow;
end;

Кнопка продолжение:
procedure TForm1.Button4Click(Sender: TObject);
begin
kpo:=0;inc(nvz);mist:=0;
edit1.Visible:=true;
edit2.Visible:=true;
edit3.Visible:=true;
edit4.Visible:=true;
edit5.Visible:=true;
edit6.Visible:=true;
edit7.Visible:=true;
edit8.Visible:=true;
edit9.Visible:=true;
edit10.Visible:=true;
edit5.Color:=clwindow;
edit2.Color:=clwindow;
edit3.Color:=clwindow;
edit4.Color:=clwindow;
edit1.Color:=clwindow;
edit6.Color:=clwindow;
edit7.Color:=clwindow;
edit8.Color:=clwindow;
edit9.Color:=clwindow;
edit10.Color:=clwindow;
CheckBox1.Visible:=true;
CheckBox2.Visible:=true;
CheckBox3.Visible:=true;
CheckBox4.Visible:=true;
CheckBox5.Visible:=true;
CheckBox6.Visible:=true;
CheckBox7.Visible:=true;
CheckBox8.Visible:=true;
CheckBox9.Visible:=true;
CheckBox10.Visible:=true;
checkbox1.Checked:=false;
checkbox2.Checked:=false;
checkbox3.Checked:=false;
checkbox4.Checked:=false;
checkbox5.Checked:=false;
checkbox6.Checked:=false;
checkbox7.Checked:=false;
checkbox8.Checked:=false;
checkbox9.Checked:=false;
checkbox10.Checked:=false;
napoln;
raspol;
end;

Самое главное, что после продолжения остаются "подсвечены" последние выбранные окошечки, хоть в двух местах это должно быть исправлено. Трассировка показывает, что процедура с CheckBox выполняется без обращения туда мышкой!

Не могу сюда вставить картинки отражающие четыре состояния программы. Сейчас быстренько попробую разместить их на своем сайте:
http://matschool.kulichki.net/
Еще раз спасибо уже за желание помочь!
Sergee вне форума Ответить с цитированием
Старый 14.01.2009, 21:52   #7
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Выложи лучше исходник программы, и мы посмотрим.
QunneD вне форума Ответить с цитированием
Старый 14.01.2009, 22:09   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Вот эта операция "checkbox1.Checked:=" и влечет за собой исполнение CheckBox1Click...
mihali4 вне форума Ответить с цитированием
Старый 14.01.2009, 22:46   #9
Sergee
 
Регистрация: 12.01.2009
Сообщений: 4
По умолчанию

Выложил текст программы на сайт

Вот эта операция "checkbox1.Checked:=" и влечет за собой исполнение CheckBox1Click...

Но ведь CheckBox1Click - должен работать только от события?
Sergee вне форума Ответить с цитированием
Старый 14.01.2009, 22:51   #10
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

чето вопрос автора вообще не понятен. Объясни, а то интересно.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переделать процедуру AidarBik Общие вопросы Delphi 12 22.05.2008 14:59
подскажите процедуру Nova БД в Delphi 5 15.05.2008 16:43
Помогите оптимизировать процедуру Cold Went Компоненты Delphi 4 29.04.2008 15:11
Задача на процедуру в Паскале Плюшечка Помощь студентам 1 08.11.2007 07:31
Как вызвать процедуру ??? Marat Помощь студентам 8 02.03.2007 15:11