Страница: 1 |
Страница: 1 |
Вопрос: Указать форму программно в VB6
Добавлено: 17.11.06 10:33
Автор вопроса: webwoolf | ICQ: 333612475
Доброго времени суток!
Кто знает, может подскажет. В проекте есть 4 окна. Из модуля в процедуру нужно передать имя окна которое нужно открыть в зависимости от определенного условия. Как сделать ?
Подскажите плз ...
Ответы
Всего ответов: 14
Номер ответа: 1
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #1
Добавлено: 17.11.06 10:42
Изврат какой-то...
По каким идейным соображениям ты не передаешь ссылку на форму? Зачем тебе вообще имя?
Номер ответа: 2
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #2
Добавлено: 17.11.06 11:13
Select Case
Номер ответа: 3
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #3
Добавлено: 17.11.06 11:40
Разверну ответ [root]'а:
Case "Form1"
Form1.Show
Form2.Hide
Form3.Hide
Form4.Hide
Case "Form2"
Form2.Show
Form1.Hide
Form3.Hide
Form4.Hide
Case "Form3"
Form3.Show
Form2.Hide
Form1.Hide
Form4.Hide
Case "Form4"
Form4.Show
Form2.Hide
Form3.Hide
Form1.Hide
End Select
Номер ответа: 4
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #4
Добавлено: 17.11.06 12:40
Такс... попробую объяснить популярно:
Возьмем пример: на каждом из 4 окон есть свой тулбар. Нужно сделать процедуру, типа
Все бы хорошо, но под <Имя формы> отводиться переменная ( наверное строковая ), а вот потом же нельзя сделать
Как быть ?
Номер ответа: 5
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #5
Добавлено: 17.11.06 13:23
Вот те функция "переменная.Show"
Select Case WindName
Case "Form1"
Form1.Show
Form2.Hide
Form3.Hide
Form4.Hide
Case "Form2"
Form2.Show
Form1.Hide
Form3.Hide
Form4.Hide
Case "Form3"
Form3.Show
Form2.Hide
Form1.Hide
Form4.Hide
Case "Form4"
Form4.Show
Form2.Hide
Form3.Hide
Form1.Hide
End Select
End Function
Номер ответа: 6
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #6
Добавлено: 17.11.06 13:58
Так чтоли, может что по-универсальнее ?
Public sub Openbuttons(isForm as string, isKey as string, isOpen as Boolean)
Select Case isForm
Case "Form1"
width form1
for i=1 to .toolbar1.buttons.count
.toolbar1.buttons(i).enable=false
next i
if isOpen then
.toolbar1.buttons(isKey).enabled=true
else
.toolbar1.buttons(isKey).enabled=true
endif
endwith
Case "Form2"
width form2
for i=1 to .toolbar1.buttons.count
.toolbar1.buttons(i).enable=false
next i
if isOpen then
.toolbar1.buttons(isKey).enabled=true
else
.toolbar1.buttons(isKey).enabled=true
endif
endwith
Case "Form3"
width form3
for i=1 to .toolbar1.buttons.count
.toolbar1.buttons(i).enable=false
next i
if isOpen then
.toolbar1.buttons(isKey).enabled=true
else
.toolbar1.buttons(isKey).enabled=true
endif
endwith
Case "Form4"
width form4
for i=1 to .toolbar1.buttons.count
.toolbar1.buttons(i).enable=false
next i
if isOpen then
.toolbar1.buttons(isKey).enabled=true
else
.toolbar1.buttons(isKey).enabled=true
endif
endwith
и здесь реализовано,ч то отключаются все кнопки, а потом включается одна на тулбаре заданной формы.
А если форм 10 ? Так нести этот Select вниз ? А если условия будут увеличиваться, то и селект на каждой ветки будет схож, только вот имена форм разные.
Может все таки унифицировать, а для этого, нужно передавать имя формы, чтобы потом написать
Можетя действительно чего то не понимаю ?
Номер ответа: 7
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #7
Добавлено: 17.11.06 14:00
Ошибка в коде. В операторе условия IF в разных случае одно и тоже решение =true. Конечно же надо в одном из вариантов =false
Номер ответа: 8
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #8
Добавлено: 17.11.06 14:03
Как передать ссылку на форму ?
Номер ответа: 9
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #9
Добавлено: 17.11.06 15:06
Dim Win As Form
Win=Form1 'Ну или там 2, 3, 4
Win.Show
????????????
Номер ответа: 10
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #10
Добавлено: 17.11.06 15:43
Номер ответа: 11
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #11
Добавлено: 17.11.06 15:44
avdey , Вот так реагирует система на твой кусок кода
Номер ответа: 12
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #12
Добавлено: 17.11.06 15:46
АГА !!! Все заработало! Я все время забываю голову включить вовремя . Set забыл поставить .
СПАСИБО ВСЕМ !!!!
Номер ответа: 13
Автор ответа:
webwoolf
ICQ: 333612475
Вопросов: 9
Ответов: 21
Профиль | | #13
Добавлено: 17.11.06 15:47
Avdey, тебе персональное сэнкс !!!!
Номер ответа: 14
Автор ответа:
avdey
ICQ: 219571279
Вопросов: 34
Ответов: 486
Профиль | | #14
Добавлено: 17.11.06 15:53
Да, незачто.