Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Помогите с ошибкой


Автор: Voldemar2004 17.4.2005, 20:23
Короче так: есть форма Form4, по завершении операции в ней надо чтоб работала ссылка на исполняемую кнопку на Form1:

Код

call Form1.Command1_Click


"Method or data member not found (Метод или объект данных не найден)"
Че за ошибка, в других погах работало, правда в пределах одной формы. smile

Автор: Naghual 18.4.2005, 08:48
Нужно что-бы процедура Command1_Click была обьявленна как Public. Тогда все будет работать.
По умолчанию, процедура обработки событий элементов формы, обьявляются в этой форме как Private.

Автор: Akina 18.4.2005, 09:44
Ну и конечно форма должна быть загружена smile

Автор: Voldemar2004 19.4.2005, 13:20
Цитата

Ну и конечно форма должна быть загружена


Да уж догадался (моя мысль: "как можно жать кнопку на незагруженной форме").
Просто объясните, как вызвать нажатие кнопки

Код

        if ' здесь всякие условия .... then

'.....
'.....

        Timer2.Enabled = False
        
        Unload Me

        Call Form1.comman1_click ' ну просто чтоб какбы нажималась на Form1 но по 
' выгрузке этой формы 

        End If
smile

Автор: Naghual 19.4.2005, 13:43
Call после Unload Me ?
Оригинально.

А ты таки хочеш при Незагруженной форме?

Автор: Voldemar2004 19.4.2005, 14:46
Оригинально не:


Код

        if ' здесь всякие условия .... then    
'.....    
'.....    
        Timer2.Enabled = False    
        Call Form1.comman1_click ' ну просто чтоб какбы нажималась на Form1 но по    
' выгрузке этой формы 

        Unload Me    
    
        End If


вот так что-ли?
ваще хотелось бы написать так:

Call Form1.command1.Nazhmis smile

Автор: Black_Star 19.4.2005, 15:12
Перенеси код из Comman_Click в отдельную ф-ю. И вызывай потом откуда хош smile

Автор: Voldemar2004 19.4.2005, 20:56
А может в Command1_Click() - в скобки вставить значения, которые надо возвращать и по ним вызывать функции этой кнопки?

Автор: Black_Star 20.4.2005, 00:20
Это что-то на грани фантастики...

Автор: Naghual 20.4.2005, 09:12
Voldemar2004
А может ты таки определишся что тебе нужно и нам расскажеш?

Автор: Exception 20.4.2005, 12:26
Почитал тут что вы понаписали...
Бред какой-то...
Код

Form1.Command1_Click
Unload Me    


Код

Public Sub Command1_Click()
Msgbox "Как это сложно!!!"
End Sub

или что тебе надо??? smile

Автор: Voldemar2004 20.4.2005, 12:34
Цитата

А может ты таки определишся, что тебе нужно и нам расскажешь?


Ну короче так: Form1:
Код

Private Sub Command1_Click()
MsgBox "Hello, World"
End Sub


А в Form2:
Код

Private Sub Command1_Click()
Call Form1.Command1_Click
End Sub


Если в пределах одной формы это хозяйство находится то проблем нет, ну если форм две, то сами видите что получается. smile

Автор: Naghual 20.4.2005, 13:14
Цитата(Naghual @ 18.4.2005, 08:48)
Нужно что-бы процедура Command1_Click была обьявленна как Public. Тогда все будет работать.
По умолчанию, процедура обработки событий элементов формы, обьявляются в этой форме как Private.

Как я уже говорил:

Автор: Anhost 20.4.2005, 13:33
При переходе на вторую форму, ты для первой не исползуешь Unload, надеюсь???

Автор: Voldemar2004 20.4.2005, 13:47
Цитата

При переходе на вторую форму, ты для первой не исползуешь Unload, надеюсь???


Для Form1 не использую и для Form2 не использую.

Автор: Anhost 20.4.2005, 14:04
Ну тогда в первой форме делай не
Код

Private Sub Command1_Click()
MsgBox "Hello, World"
End Sub

, а
Код

Public Sub Command1_Click()
MsgBox "Hello, World"
End Sub


Уже несколько раз сказали...

Автор: Voldemar2004 20.4.2005, 14:37
Все работает, спасибо. smile
Просто я не различил Public и Private - на одну и туже букву начинаются - так не заметил. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)