Можно передать переменную в Form_Load?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Можно передать переменную в Form_Load?

Сообщение Dummiel » 24.01.2007 (Ср) 14:09

Хай, други!

Задача у меня вот какая: При загрузке формы (Form_Load()) мне нужно узнать, есть ли определенная запись, если она есть, то вывести форму с текстбоксами, заполненными значениями полей этого рекордсета, и при изменении их сделать .Edit рекордсета, если же нет - вывести пустые поля на этой форме для заполнения новыми данными, с последующим сохранением их (.AddNew) в БД.

Можно ли в вызывающей форме сделать проверку наличия записи и как-то передать (напрмер 0 Or 1) в вызываемую форму, чтобы уже внутри формы вычислять, пустую ее выводить, или заполненную? Или делать глобальные булевы переменные? Дык форм около 20, следовательно и флагов столько же. Загаживать память не хотелось бы. А ведь Form_Load() пишется со скобками, т.е., вроде как "ждет" какую-то переменную? :)

Разъясните!

С уважением - Я.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.01.2007 (Ср) 14:34

Низзя... Тока глобальные переменные.

Тем более, что Form_Load есть процедура обработки события не имеющего аргументов.

Другой вариант, сделай в форме функцию, в нее передай аргумент, а уже внутри этой функции отображай форму:

Код: Выделить всё
Public Sub ShowMe(ByVal nArg As Integer)
     ' что-нить делаем с аргументом
    Me.Show
End Sub
Весь мир матрица, а мы в нем потоки байтов!

Dummiel
Бывалый
Бывалый
 
Сообщения: 235
Зарегистрирован: 11.06.2004 (Пт) 9:15
Откуда: Алтай

Сообщение Dummiel » 26.01.2007 (Пт) 5:10

Спасибо!

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 26.01.2007 (Пт) 9:21

!Viper! писал(а):Низзя... Тока глобальные переменные.


Не надо так делать ибо нехорошо.

Можно использовать Public переменную/ые уровня формы или создать соответствующее свойство/а.

Ну или такой вариант:

!Viper! писал(а):Другой вариант, сделай в форме функцию, в нее передай аргумент, а уже внутри этой функции отображай форму:


Правда показана была процедура. Но и функцию можно:

Код: Выделить всё
Public Function ShowMe(ByVal nArg As Integer) As Long
     ' что-нить делаем с аргументом
    Me.Show vbModal, Me
    ShowMe = какой-то переменной формы
End Function


Вызывается примерно так:

Код: Выделить всё
Dim f As New frmFindSkl
MsgBox f.ShowMe( 123)
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 96

    TopList