|
|
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Есть такой вопрос. При выполнении приложения и вызове экранной формы (метод Init) есть возможность выполнить любой программный код. С помощью какого кода можно изменить метод кнопки Click, кнопка уже существует на форме? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:37 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
Программно во время выполнения существуюший код менять нельзя. Но можно использовать макроподстановки: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:42 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
Я так думаю что в коде кнопки на Вашей форме должны присутствовать все виды блоков кода. А вот какой конкретно блок кода будет исполнен должно проверяться по условию какому-то. тогда блоки кода можно кинуть в DO CASE и всех делов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:45 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
Макроподстановка никак не подходит. Общая задача - необходимо реализовать следующее: При выборе покупателя в накладной необходимо проверить некоторые условия (отсутствие задолженности и т.п.). В случае если условия не выполняются, то пользователь не должен иметь возможность выбрать покупателя в накладную (т.е. перед стандартным кодом кнопки, необходимо добавить проверку) - при этом пользователю выдается окошко "вы не можете выбрать данного покупателя по такой-то причине" и пользователь остается в окне выбора покупателей. Само приложение изменить невозможно. Есть возможность выполнить код из своего prg после выполнения метода Init. Добавлять свои кнопки на форму тоже нежелательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:50 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
CTAC-KOЯ так думаю что в коде кнопки на Вашей форме должны присутствовать все виды блоков кода. А вот какой конкретно блок кода будет исполнен должно проверяться по условию какому-то. тогда блоки кода можно кинуть в DO CASE и всех делов. В коде кнопки только выбор элемента из справочника, возврат значения в форму, которая вызвала справочник и уничтожение текущей формы справочника. Какой-нибудь user defined функции там нету.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 14:51 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
> Само приложение изменить невозможно. Есть возможность выполнить код > из своего prg после выполнения метода Init. > Добавлять свои кнопки на форму тоже нежелательно. Тогда никак. В своем прж файле можно прописать какую-то функцию, но её должен кто-то вызывать! Поставь этот вызов в проверку выбора из списка или чего у тебя или если проверка с обращением идет на сервер БД можно породелать эту проверку там и по результатам проверки давать данные или не давать Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 18:09 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
В порядке идеи В prg DEFINE свой класс с нужной функциональностью , добавляем его на форму(с Visible = .f.) и с помощью BINDEVENT переопределяем метод Click "родной кнопки" на метод своего класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 18:43 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
Elmer83Само приложение изменить невозможно. Есть возможность выполнить код из своего prg после выполнения метода Init. Добавлять свои кнопки на форму тоже нежелательно. Если есть доступ к исходникам, то почему в кнопку не дописать? Если это какой-то класс чужой, то элементарно: Код: plaintext 1. 2. 3. 4. 5. добавить на ее место свою кнопку внешне похожую (предварительно сделав класс и прописав там свои проверки, а в конце вызов Click() той кнопки) Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.01.2008, 18:48 |
|
||
|
Замена программного кода в форме при выполнении приложения
|
|||
|---|---|---|---|
|
#18+
To -=AlexiS=-, Dima T Огромное спасибо! BindEvent() и ThisForm.AddObject() помогли! Изврат удался! Хотя пришлось делать не так как первоначально задумал, поскольку оказалось что нажатие Enter в гриде, клик мышкой в гриде и нажатие кнопки OK - не одно и то же. Но в общем - всё получилось. Еще раз - спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2008, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35076140&tid=1588259]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
113ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 468ms |

| 0 / 0 |
