Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: bit.pirit.info
 Профиль | | #2
Добавлено: 17.11.06 11:13
Select Case

Ответить

Номер ответа: 3
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #3 Добавлено: 17.11.06 11:40
Разверну ответ [root]'а:
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

Ответить

Номер ответа: 4
Автор ответа:
 webwoolf



ICQ: 333612475 

Вопросов: 9
Ответов: 21
 Профиль | | #4 Добавлено: 17.11.06 12:40
Такс... попробую объяснить популярно:
Возьмем пример: на каждом из 4 окон есть свой тулбар. Нужно сделать процедуру, типа
OpenButtons( <Имя формы>, <Ключ кнопки>,<Действие: enabled/disabled>;)

Все бы хорошо, но под <Имя формы> отводиться переменная ( наверное строковая ), а вот потом же нельзя сделать
переменная.Show

Как быть ?

Ответить

Номер ответа: 5
Автор ответа:
 avdey



ICQ: 219571279 

Вопросов: 34
Ответов: 486
 Профиль | | #5 Добавлено: 17.11.06 13:23
Вот те функция "переменная.Show"

Function Win(WindName As String)
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


OpenButtons(Win("Имя формы";), <Ключ кнопки>,<Действие: enabled/disabled>;)

Ответить

Номер ответа: 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 вниз ? А если условия будут увеличиваться, то и селект на каждой ветки будет схож, только вот имена форм разные.
Может все таки унифицировать, а для этого, нужно передавать имя формы, чтобы потом написать
<Имя формы>.toolbar1 и т.д.


Можетя действительно чего то не понимаю ?

Ответить

Номер ответа: 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
Compile error: Invalid use of property

Ответить

Номер ответа: 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
Да, незачто.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам