Страница: 1 | 2 | 3 | 4 |
Вопрос: Доступность процедур и переменных
Добавлено: 21.01.06 20:07
Автор вопроса: Wolfrt | ICQ: 225421504
Ответы
Всего ответов: 50
Номер ответа: 31
Автор ответа:
Wolfrt
ICQ: 225421504
Вопросов: 8
Ответов: 60
Профиль | | #31
Добавлено: 23.01.06 20:06
Блин ребят я ламер! написав Option Explicit Off я отключил проверку объявления переменной. Проблема осталась!
в первой форме пишу:
Public Class Form1
Inherits System.Windows.Forms.Form
Public a As Double
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
a = 11
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
во второй:
не вижу её!
Номер ответа: 32
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #32
Добавлено: 23.01.06 20:15
Ты бы сначала написал ЦЕЛЬ которую ты преследуешь, т.е. что ты хочешь
написать, получить в итоге?
Номер ответа: 33
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #33
Добавлено: 23.01.06 20:17
Напиши конкретней что хочешь получить и кого еЁ?
Номер ответа: 34
Автор ответа:
Wolfrt
ICQ: 225421504
Вопросов: 8
Ответов: 60
Профиль | | #34
Добавлено: 23.01.06 20:41
В обшем первое: один раз посчитать массив и с разых форм к ниму обращаться!
второе один раз написать функцию и с разых форм к ней обращаться, а то приходиться на каждой форме дублировать, т.е. писать одни и теже функции, считать одни и теже массивы. Можно конешно передавать массивы но не интересно и уменьшает быстродействие!
Номер ответа: 35
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #35
Добавлено: 23.01.06 20:53
А кто тебе мешает объявить массив как Public в модуле и функцию там же
и пользоваться во всех формах.
Ну конечно!!!:
И кстати, что ты пытался сделать тем кодом который привел? хе-хе
Номер ответа: 36
Автор ответа:
Wolfrt
ICQ: 225421504
Вопросов: 8
Ответов: 60
Профиль | | #36
Добавлено: 23.01.06 21:33
Тем кодом хочу показать, как я делаю!
Вот попробуй следующие:
в form1 объяви переменную например "Public Test As Double" и присвой ей значени например 10
открой Form2.ActiveForm.Show()
в form2 выведи переменную "Test" в Label.
Номер ответа: 37
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #37
Добавлено: 23.01.06 22:29
Дело в том что Form1 - это объект, соответственно твой массив принадлежит этому объекту. Неважно как он объявлен: Private он или Public, всё равно он останется членом класса Form1. Соответственно обратится к нему всегда можно Объект.Свойство.
Например:
Public Array(9) As Long
MsgBox Form1.Array(0)
Тогда, если массив Array объявлен как Public, то он будет виден из других модулей, если Private - то нет. Это называется инкапсуляция, или свойство объектов скрывать свои члены.
Номер ответа: 38
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #38
Добавлено: 23.01.06 22:44
Форма1:
Private Sub Form_Load()
Test = "10"
Label1.Caption = Test
Form2.Visible = True
End Sub
Форма2:
Private Sub Form_Load()
Label1.Caption = Test
End Sub
Модуль:
Номер ответа: 39
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #39
Добавлено: 23.01.06 22:50
Блин че то и я тормозить стал!!!
ВООО:
Public Test As Double
Public Sub Form_Load()
Test = "10"
Label1.Caption = Test
Form2.Visible = True
Form2.Label2.Caption = Test
End Sub
Номер ответа: 40
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #40
Добавлено: 23.01.06 23:36
шо то мне кажеться что автор вопроса путает модуль с формой! Ему 100
раз сказали что объявляй переменные в МОДУЛЕ, пиши функции в МОДУЛЕ, а
он всёравно в ФОРМЕ пишет... Что ж нам в такой ситуации делать?
Номер ответа: 41
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #41
Добавлено: 24.01.06 00:16
Да нет, он может и к массиву формы обратиться. См. ответ 37.
Номер ответа: 42
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #42
Добавлено: 24.01.06 11:21
Не вздумай!
Млин, тебе же сказали - вынеси в модуль!
Либо, как уже говорилось, Объект.Переменная
Если массив используется в нескольких объектах - определенно в модуль.
Порой имеет смысл объявлять как Friend. Тогда будет виден из других модулей проекта, но скрыт для клиента.
К сожалению, в связи с отсутствием наследования в VB6 нету Protected. Хотя автор говорит про .NET.
Номер ответа: 43
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #43
Добавлено: 24.01.06 18:34
Не всегда... Если не поставишь галку в опциях - не будет ставиться.
Номер ответа: 44
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #44
Добавлено: 24.01.06 19:09
2Александр: НУ я про тоже и говорю, сразу после установки ты ее
ставишь, почему то мне так кажется
И уже в последующих запусуках - ставиться автоматом!
Номер ответа: 45
Автор ответа:
Wolfrt
ICQ: 225421504
Вопросов: 8
Ответов: 60
Профиль | | #45
Добавлено: 24.01.06 19:30
to HACKER
Спасибо большое!
Что направил на путь истенный!
Раньше не сталкивался с модулем!
Всё что требовалась сказать: добавь module b объявляй переменные там!