Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Не блокируется кнопка


Автор: Linzer 10.10.2010, 09:30
По клику на кнопку блокируются (Enabled) две другие, и почему то одна блокируется, а вторая нет. А когда нажимаешь еще раз на кнопку, которая блокирует, то та которая не блочилась блокируется... В чем может быть косяк?

Автор: Akina 10.10.2010, 10:49
Цитата(Linzer @  10.10.2010,  10:30 Найти цитируемый пост)
В чем может быть косяк? 

В коде.
Код - в студию.

Автор: iff 10.10.2010, 11:32
Код

Private Sub Command1_Click()
Command2.Enabled = False
Command3.Enabled = False
End Sub

Автор: Linzer 11.10.2010, 07:37
Цитата(iff @ 10.10.2010,  11:32)
Код

Private Sub Command1_Click()
Command2.Enabled = False
Command3.Enabled = False
End Sub

именно так и написано, но одну блокирует сразу, а вторую со 2го раза

Автор: Akina 11.10.2010, 07:51
Linzer, Вам уже русским языком было сказано - код (а лучше проект - само собой всё лишнее из него удалить) в студию. 
Или шагайте на форум телепатов.

Автор: Linzer 11.10.2010, 21:19
Код

Private Sub Command3_Click()
Load Form8
Form8.Show
Command1.Enabled = False
Command2.Enabled = False
Command3.Enabled = False
If Command1.Caption = "Îòîáðàòü" Then
    Command1.Caption = "Ïîèñê"
End If
ListView1.ListItems.Clear
obnovlenie
Text1.Text = ""
Combo1.Clear
updating_combo
End Sub

Автор: Akina 12.10.2010, 07:54
Итак Command3 блокируется только после второго нажатия?
1) Выполните всё то же, но в режиме трассировки, установив брейк на строке 4. Смотрите возникающие при этом вызовы и переходы.
2) Найдите по коду все прямые и косвенные присвоения Command3.Enabled = True, в т.ч. из таймерных процедур, модулей других форм, общих модулей и пр. Трассируйте, поставив на них брейки.
3) Поставьте условный брейк на изменение значения и смотрите, где происходит включение.
4) Отключите по одной вызов процедур (строки 11 и 14) и проверьте, что проблема не исчезает.
5) Что есть Form8? Влияет ли она на состояние контролов текущей формы? Исчезает ли проблема, если её открывать модально или не открывать вообще?

Автор: Linzer 12.10.2010, 11:20
Цитата(Akina @ 12.10.2010,  07:54)
Итак Command3 блокируется только после второго нажатия?
1) Выполните всё то же, но в режиме трассировки, установив брейк на строке 4. Смотрите возникающие при этом вызовы и переходы.
2) Найдите по коду все прямые и косвенные присвоения Command3.Enabled = True, в т.ч. из таймерных процедур, модулей других форм, общих модулей и пр. Трассируйте, поставив на них брейки.
3) Поставьте условный брейк на изменение значения и смотрите, где происходит включение.
4) Отключите по одной вызов процедур (строки 11 и 14) и проверьте, что проблема не исчезает.
5) Что есть Form8? Влияет ли она на состояние контролов текущей формы? Исчезает ли проблема, если её открывать модально или не открывать вообще?

Не блокируется command1. Пункты 4 и 5 не влияют, проверил. С остальным пока разбираюсь

Автор: Akina 12.10.2010, 11:23
Цитата(Linzer @  12.10.2010,  12:20 Найти цитируемый пост)
Не блокируется command1. 

Попробуйте переместить код изменения на ней надписи выше кода её блокирования. 
Хотя хрень это, конечно.

Автор: Linzer 12.10.2010, 16:00
Цитата(Akina @ 12.10.2010,  11:23)
Цитата(Linzer @  12.10.2010,  12:20 Найти цитируемый пост)
Не блокируется command1. 

Попробуйте переместить код изменения на ней надписи выше кода её блокирования. 
Хотя хрень это, конечно.

Спасибо. Разобрался.
А с чем быстрее работать с коллекцией или с файлом? я так полагаю с коллекцией, да?

Автор: Akina 12.10.2010, 16:01
С коллекцией быстрее - она лежит в памяти и не требует обращения к диску.

Автор: Linzer 14.10.2010, 12:27
Цитата(Akina @ 12.10.2010,  16:01)
С коллекцией быстрее - она лежит в памяти и не требует обращения к диску.

Спасибо Akina! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)