powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Замена программного кода в форме при выполнении приложения
9 сообщений из 9, страница 1 из 1
Замена программного кода в форме при выполнении приложения
    #35076092
Elmer83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!
Есть такой вопрос.
При выполнении приложения и вызове экранной формы (метод Init) есть возможность выполнить любой программный код.
С помощью какого кода можно изменить метод кнопки Click, кнопка уже существует на форме?
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35076107
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программно во время выполнения существуюший код менять нельзя.
Но можно использовать макроподстановки:
Код: plaintext
1.
lcCode = 'MessageBox("TEST")'
&lcCode
А тебе это зачем нужно?
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35076113
CTAC-KO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так думаю что в коде кнопки на Вашей форме должны присутствовать все виды блоков кода. А вот какой конкретно блок кода будет исполнен должно проверяться по условию какому-то. тогда блоки кода можно кинуть в DO CASE и всех делов.
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35076136
Elmer83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макроподстановка никак не подходит.
Общая задача - необходимо реализовать следующее:

При выборе покупателя в накладной необходимо проверить некоторые условия (отсутствие задолженности и т.п.). В случае если условия не выполняются, то пользователь не должен иметь возможность выбрать покупателя в накладную (т.е. перед стандартным кодом кнопки, необходимо добавить проверку) - при этом пользователю выдается окошко "вы не можете выбрать данного покупателя по такой-то причине" и пользователь остается в окне выбора покупателей.

Само приложение изменить невозможно. Есть возможность выполнить код из своего prg после выполнения метода Init.
Добавлять свои кнопки на форму тоже нежелательно.
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35076140
Elmer83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CTAC-KOЯ так думаю что в коде кнопки на Вашей форме должны присутствовать все виды блоков кода. А вот какой конкретно блок кода будет исполнен должно проверяться по условию какому-то. тогда блоки кода можно кинуть в DO CASE и всех делов.

В коде кнопки только выбор элемента из справочника, возврат значения в форму, которая вызвала справочник и уничтожение текущей формы справочника.

Какой-нибудь user defined функции там нету....
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35077002
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Само приложение изменить невозможно. Есть возможность выполнить код
> из своего prg после выполнения метода Init.
> Добавлять свои кнопки на форму тоже нежелательно.

Тогда никак. В своем прж файле можно прописать какую-то функцию, но её
должен кто-то вызывать! Поставь этот вызов в проверку выбора из списка или
чего у тебя или если проверка с обращением идет на сервер БД можно
породелать эту проверку там и по результатам проверки давать данные или не
давать

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35077098
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В порядке идеи
В prg DEFINE свой класс с нужной функциональностью , добавляем его на форму(с Visible = .f.) и с помощью BINDEVENT переопределяем метод Click "родной кнопки" на метод своего класса.
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35077110
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elmer83Само приложение изменить невозможно. Есть возможность выполнить код из своего prg после выполнения метода Init.
Добавлять свои кнопки на форму тоже нежелательно.
Если есть доступ к исходникам, то почему в кнопку не дописать? Если это какой-то класс чужой, то элементарно:
Код: plaintext
1.
2.
3.
4.
5.
... Проверка всех условий
if можно выбрать
   return dodefault()
else
   thisform.Grid.SetFocus()
endif
В крайнем случае - кнопке сделать Visible = .F.
добавить на ее место свою кнопку внешне похожую (предварительно сделав класс и прописав там свои проверки, а в конце вызов Click() той кнопки)
Код: plaintext
thisform.AddObject(...)
Но это изврат получается.
...
Рейтинг: 0 / 0
Замена программного кода в форме при выполнении приложения
    #35079050
Elmer83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To -=AlexiS=-, Dima T

Огромное спасибо!
BindEvent() и ThisForm.AddObject() помогли! Изврат удался!

Хотя пришлось делать не так как первоначально задумал, поскольку оказалось что нажатие Enter в гриде, клик мышкой в гриде и нажатие кнопки OK - не одно и то же.

Но в общем - всё получилось.

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


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