|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.01.2009, 23:27 | #1 |
Регистрация: 12.01.2009
Сообщений: 4
|
Почему управление передается в процедуру?
В программе есть компоненты checkbox и edit. В них несколько элементарных операторов. В процессе работы программы этим компонентам присваивается свойство .visible:=falshe. Затем они вновь становятся true, но заполнены предыдущим цветом. Проверка показывет, что после обновления, процедуры checkboxonClik получают управление, хоть это полностью исключается логикой программы! Они могут срабатывать, только в случае события! Мистика! Кто может что-то обьяснить?
Сергей |
12.01.2009, 23:37 | #2 | |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Цитата:
Вот эти фразы объясните. При чем тут цвет? Какое такое обновление? Обновление чего? (В программировании мистика исключена, ее заменяет неверная логика. Михалыч) Последний раз редактировалось mihali4; 13.01.2009 в 02:02. |
|
13.01.2009, 00:01 | #3 |
C++ & PHP & Asm
Форумчанин
Регистрация: 06.12.2008
Сообщений: 300
|
Я вообще ничего не понял из прочтеного...
|
13.01.2009, 01:07 | #4 |
Форумчанин
Регистрация: 02.01.2009
Сообщений: 340
|
QunneD, не ты один
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=) Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
|
13.01.2009, 01:51 | #5 |
Пользователь
Регистрация: 18.12.2008
Сообщений: 47
|
Если я тебя правильно понял, то цвет вообще не изменяется или на твои объекты во время "невидимости" твои процедуры не действуют и когда visible снова true то ты обнаруживаешь старый,неизмененный цвет.
По логике вещей, одно из двух, И объясни, о каком цвете идет речь? |
14.01.2009, 21:26 | #6 |
Регистрация: 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/ Еще раз спасибо уже за желание помочь! |
14.01.2009, 21:52 | #7 |
C++ & PHP & Asm
Форумчанин
Регистрация: 06.12.2008
Сообщений: 300
|
Выложи лучше исходник программы, и мы посмотрим.
|
14.01.2009, 22:09 | #8 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Вот эта операция "checkbox1.Checked:=" и влечет за собой исполнение CheckBox1Click...
|
14.01.2009, 22:46 | #9 |
Регистрация: 12.01.2009
Сообщений: 4
|
Выложил текст программы на сайт
Вот эта операция "checkbox1.Checked:=" и влечет за собой исполнение CheckBox1Click... Но ведь CheckBox1Click - должен работать только от события? |
14.01.2009, 22:51 | #10 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
чето вопрос автора вообще не понятен. Объясни, а то интересно.
Будь проще и люди к тебе потянутся
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переделать процедуру | 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 |