|
Vsh
|
||||||
Как вызывать различные процедуры по одному событию?25.05.2007, 19:54. Показов 1096. Ответов 5
Метки нет (Все метки)
Не подскажите как решить в VB
Несколько различных классов содержат одну и ту же форму, эта форма вызывается из содержащего ее класса. Хочется чтоб при нажатии кнопки на форме вызывался метод из того класса из которого и сама форма. Нечто вроде:
|
||||||
| 25.05.2007, 19:54 | |
|
Ответы с готовыми решениями:
5
как сделать и вызывать процедуры БД?
Вызов процедуры по событию |
|
Vsh
|
|
| 26.05.2007, 18:56 | |
|
Забыл добавить:
Речь о VB6 в коде '** Class_1*** private frm as Form... 'содержит кнопку OK '** Class_2*** private frm as Form... 'содержит кнопку OK ---------- это одна и таже форма '** Class_1*** Public Sub M_Class1(s as string) End sub '** Class_2*** Public Sub M_Class2(d as double, s as string) End sub ------ методы могут различатся параметрами Спасибо |
|
|
Andy
|
|
| 29.05.2007, 20:34 | |
|
А ты в модуле создай переменную, типа,
Public intFormLoad%. И в классе 1 пиши ??????? ??????? intFormLoad = 1 В классе 2 ??????? ??????? intFormLoad = 2 В классе 3 ??????? ??????? intFormLoad = 3 В нужной форме Private Sub Form_Load() if intFormLoad = 1 then //////// elseif intFormLoad = 2 then /////// elseif intFormLoad = 3 then //////// end if End Sub |
|
|
Vsh
|
|
| 29.05.2007, 22:08 | |
|
Переменная селектор - не подойдет
1. может быть не 1 - 2 класса а 500 2. Форма - универсальный документ (например заказ вида Номер, дата, сумма), но заказы могут быть разные - один просто записывается, другой при записи делает какие лидо действия (отсылает экземпляр дяде Васе), и т д Решается наследованием, но нет его, указателями на функции, но и их нет
|
|
|
Mavr
|
||||||
| 30.05.2007, 08:53 | ||||||
|
Используй WithEvents:
|
||||||
|
Lev From URALs
|
||||||||||||||||
| 05.06.2007, 13:25 | ||||||||||||||||
|
Еще вариант:
в форму помещаем ссылку на родительский класс (объявляем глобально), при создании класса, например, создаем экземпляр формы, присваиваем значение ссылки экземпляру класса. Далее, где надо работаем с классом - как хотим, через ссылку на экземпляр в тек. экземпляре формы. Пример: (сделан в MS Excel, т.к. VB на этой машине не стоит. В VB он тоже будет работать) Итак: открываем новую книгу, на первом листе рисуем 4 кнопки, в проекте добавляем класс MyClass, форму UserForm1, на которую кнопку CB1. Код: в UserForm1:
в Лист1:
в MyClass:
1) нажимаем кнопку CommandButton1 -- создание всех объектов 2) нажимаем на кнопки CommandButton2 - CommandButton4 -- соответствующие классы показывают свои экземпляры формы, нажимая на кнопку в которых - вызывается метод этого класса. PS: конечно же это могли быть экземпляры разных классов - тогда эти классы должны иметь одинаковые методы (в нашем примере - Show), с одинаковым именем и параметрами, а при объявлении ссылку на родительский класс в форме нужно описать с типом Object. PSS: Проблема предыдущего предложения - когда при работе с формой родительский класс может быть уничтожен - здесь места не имеет, т.к. вся форма - это поле (свойство) класса, при удалении экземпляра класса форма тоже будет удалена. PSSS: в этом примере маленький минус, который легко обойти: все время жизни экземпляра класса его форма загружена в памяти полностью. Соответственно, если экземпляров 10000, то возникнут проблемы с памятью. Для решения - модифицируем объявление формы в классе, а загрузку и начальные присваивания в форме делаем непосредственно перед показом и сразу за ним удаляем (форму). Уф. вроде все! |
||||||||||||||||
| 05.06.2007, 13:25 | |
|
Помогаю со студенческими работами здесь
6
Доступ к событию из процедуры
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|