Страница: 1 |
Страница: 1 |
Вопрос: Проблема с формой
Добавлено: 24.06.04 15:44
Автор вопроса: alexis_b | ICQ: 232969505
Народ не подскажите как открыть форму если у меня есть только переменная в которой храниться имя формы.
Зарание благодарен.
Для создателей данного сайта: Вы случаем не замечали что ваш сайт неадыкватно себя ведет например в Опере?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #1
Добавлено: 24.06.04 17:19
for i=0 to forms.count-vbnull
if forms(i).Name = Form_Name then call msgbox(i): exit for
next
Номер ответа: 2
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #2
Добавлено: 24.06.04 17:20
ой, это как найти форму... дальше я думаю подойдет forms(i).show
Номер ответа: 3
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #3
Добавлено: 24.06.04 17:33
мда видать меня не поняли:
объясняю forms(i) - будет работать если объект уже создан, а у меня его еще нет вот я и спрашиваю как его создать имея на руках только переменную?
Номер ответа: 4
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #4
Добавлено: 24.06.04 17:39
какойто грубый пост получился, приношу извенения если обидел кого
Номер ответа: 5
Автор ответа:
@CyRax PTR
ICQ: 204447456
Вопросов: 28
Ответов: 664
Web-сайт:
Профиль | | #5
Добавлено: 24.06.04 20:55
Да, всё таки 5400 оборотов долговато трещит.
Попробуй этот код.
Option Explicit
' For VB5
'Private Declare Function EbExecuteLine Lib "vba5.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
' For VB6
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
' FOR Access 97/VBE.dll clients like Word 97 and Excel 97
' Declare Function EbExecuteLine Lib "vba332.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long
Private Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function
Private Sub Form_Click()
ExecuteLine "Form2.Show"
End Sub
Номер ответа: 6
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #6
Добавлено: 24.06.04 21:23
Непонятно, у тебя есть созданная в DesignTime форма и ты хочешь её отобразить на экране в RunTime? И что значит "есть переменная"? Как она определена? Если так: Dim F As Form, то загружается она так:
Set F = New Frm1
F.Show
Frm1 должна быть создана на этапе разработки. И таких форм можно создать кучу, но при этом они будут реагировать на движения юзера совершенно одинаково.
Если тебе нужны совершенно разные формы с разными дочерними элементами, то тогда тебя спасёт только CreateWindowEx плюс WndProc
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 24.06.04 21:52
2alexis_b, ну извиняй, у меня седня вообще с головой плохо, к экзамену готовился, в пять лег, в шесть встал так что не соображаю...
ЗЫ
вот еще зачетку спросоня потепял
так что не обессутьте господа программеры...
Номер ответа: 8
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #8
Добавлено: 28.06.04 09:37
у меня есть создазданная в DesignTime форма и в текстовой переменной лежит ее имя и мне нужно ее отобразить на экране в RunTime.
Номер ответа: 9
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #9
Добавлено: 28.06.04 10:15
Большой сенкс @CyRax PTR все работает!!!
Номер ответа: 10
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #10
Добавлено: 05.07.04 16:21
Не все так просто как кажется данный метод который описал @CyRax PTR почемуто не работает в скомпилированном проекте
Номер ответа: 11
Автор ответа:
alexis_b
ICQ: 232969505
Вопросов: 10
Ответов: 74
Профиль | | #11
Добавлено: 05.07.04 16:22
Может быть у кого нибуть есть другие методы?