powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / изменить метод в классе
6 сообщений из 6, страница 1 из 1
изменить метод в классе
    #32254626
qws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qws
Гость
Есть б-ка .vcx c классом R. У него - пустой Click. Запускаю форму do form и в ее Inite добавляю б-ку, создаю экземпляр класса R, но хочу изменить код метода Click. Как это сделать? Ведь нельзя в методе иметь определение другого класса. Мне же нужно динамически менять код в методе Click R по условиям. Можно в Inite формы добавить процедурный файл с описанием стольких классов, сколько есть возможных вариантов Click R, но это плохо. Можно делать объект форму, одновременно прописывая нужный класс с нужным кодом, и вызывать форму методом Show() - так описано во всех примерах, но это работает в стартовой программе, а как сделать, чтобы работало в методе?
...
Рейтинг: 0 / 0
изменить метод в классе
    #32254649
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая версия фокса?
Если восьмерка, то почитайте help по функции BINDEVENT().
...
Рейтинг: 0 / 0
изменить метод в классе
    #32254678
qws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qws
Гость
Я работаю с VFP 7.0.
...
Рейтинг: 0 / 0
изменить метод в классе
    #32254726
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До восьмерки были извраты типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
define class Hook as custom

HookVar =  _Screen

proc HookVar.RightClick
   messageb('RightClick On Screen!')

enddefine
...
Рейтинг: 0 / 0
изменить метод в классе
    #32254789
АлександрК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно в Inite формы добавить процедурный файл с описанием стольких классов, сколько есть возможных вариантов Click R, но это плохо.

А что, если создать класс с описанием возможных действий?

Init формы:
This.AddProperty("MyMethodClick")
This.MyMethodClick = CREATEOBJECT("MyClick")
This.AddProperty("MyProperty")
DO CASE
CASE Условие1
This.MyProperty = 1
CASE Условие2
This.MyProperty = 2
CASE Условие3
This.MyProperty = 3
ENDCASE

This.AddObject("MyCommandButton", "R")

Метод Click класса R
DO CASE
CASE This.Parent.MyProperty = 1
This.Parent.MyMethodClick.Click1()
CASE This.Parent.MyProperty = 2
This.Parent.MyMethodClick.Click2()
CASE This.Parent.MyProperty = 3
This.Parent.MyMethodClick.Click3()
ENDCASE

Файл, в котором описываются возможные действия
define class MyClick as custom
function Click1()
....
endfunc
function Click2()
....
endfunc
function Click3()
....
endfunc
endefine

Все это, конечно, грубовато, но я думаю идея ясна.
...
Рейтинг: 0 / 0
изменить метод в классе
    #32254798
qws
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
qws
Гость
!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / изменить метод в классе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]