Страница: 1 |
Страница: 1 |
Вопрос: Обращение к форме
Добавлено: 07.08.04 00:49
Автор вопроса: Reborn
Человеки, помогите:
Есть ListBox и есть формы, у которых Name равно Items в этом ListBox. Name форм задается в процессе работы программы, следовательно в программном коде к ним я обратится не могу.
Как можно сделать так, чтобы обращаться к формам, используя ListBox.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 07.08.04 01:38
Можно циклом. Но только если форма уже загружена.
Private Sub Form_Click()
EnumFrm "Form1"
EnumFrm "Form2" 'Получишь ошибку
Form2.Show
EnumFrm "Form2"
End Sub
Sub EnumFrm(FormName As String)
For a = 0 To Forms.Count - 1
If Forms.Name = FormName Then Forms.Caption = "* " & Forms.Caption: Exit Sub
Next a
MsgBox "Форма не найдена или не загружена.", 48, FormName
End Sub
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 07.08.04 01:42
А почему ты динамически задаешь именно Form.Name а не к примеру Caption? Неужели никак нельзя обойти это?
Как мне кажется если формы создаются динамически, то вариант решения тут только один- использовать массив форм. В этом случае у тебя будет одно и тоже имя формы и одни и те же обработчики событий,но будут разные индексы, которые ты можешь загнать в свойство ItemData твоего ListBox, и спокойно работать со своими формами..
Номер ответа: 3
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #3
Добавлено: 09.08.04 11:51
Проблема в том, что формы могут быть разными. Ежели однотипные - определенно массив. Иначе - цикл, но имя использовать не получится. Для подобных вещей есть Caption и Tag. Можно, конечно, и через hWnd