![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сделано или нет? [D6, WinME]
DeepProg © (2002-08-20 15:32:00)GD!
Пожалуйста напишите пример кода, который проверяет была выполнена или нет к.-л. процедура, ну и в зависимости от результата он выполняет к.-л. действие.
Я думаю, мне нужен оператор, типа
if not Procedure_Name(Form1) then begin
...
end;
DeepProg (2002-08-20 19:50:00) [1]Вот те нате!
Может никто и не поверит, но я ничего не менял в описанных разделах кола, лишь исправил другой баг в проге-и все пошло.
Я думаю, что создание формы запаздывало из-за нехватки памяти (хотя, неужели ему мало 256 мегов? S:-/
DeepProg (2002-08-20 19:06:00) [2]
> Reindeer Moss Eater (20.08.02 16:15)
> В обработчике FormCreate установи проперти OnCalcFields
> у датасета. Таким образом, он будет вызываться только после
> создания формы
Но ведь OnCalcFields выполняется до FormCreate, независимо от того есть его постановка в FormCreate или нет.
Поэтому, господа Reindeer Moss Eater and Val, можно поподробнее о ваших решениях.
2 Dmitriy Polskoy © (20.08.02 16:22)
Не получается - форма все равно не создается.
Val (2002-08-20 16:38:00) [3]if Assigned(MyForeignForm) then...
Dmitriy Polskoy (2002-08-20 16:22:00) [4]Попробуй обойтись переменной типа boolean, которая инициализируется в True в конструкторе формы. А потом проверяй ее значение.
Reindeer Moss Eater (2002-08-20 16:15:00) [5]В обработчике FormCreate установи проперти OnCalcFields у датасета. Таким образом, он будет вызываться только после создания формы
DeepProg (2002-08-20 16:06:00) [6]Подробнее излагаю вопрос:
Отслеживать нужно выполнение FormCreate.
Мое приложение содержит в себе базу данных, и еще запускает другое приложение.
БД и внешнее приложение(далее ВП) взаимодействуют, и фактически все команды, посылаемые to ВП находятся в обработчике события OnCalcFields таблицы БД.
В первую очередь происходит запуск ВП, затем должна идти FormCreate , и уже после всего этого OnCalcFields (описана ситуация, когда в таблице БД, уже лежат данные, достаточные для выполнения OnCalcFields).Проблема в том, что сначала (еще до FormCreate) выполняется OnCalcFields - но из него посылается задание ВП-ю, выполнение котoрого(задания) невозможно без пароаметров, определяемых в FormCreate.
Так вот я и хочу в обработчике OnCalcFields ввести проверку выполнения FormCreate, и, если результат false - задать необходимые для дальнейшей нормальной работы параметры уже в OnCalcFields.
Если кто-то может помочь с альтернативным решением этой задачи - с удовольствием рассмотрю ваши предложения, хотя для меня и проще лишь прописать эту проверку и не мучиться.
Dmitriy Polskoy (2002-08-20 15:38:00) [7]Нужно отслеживать выполнение любой процедуры или какой-то конкретно? Можешь поподробнее изложить суть вопрос?
MBo (2002-08-20 15:37:00) [8]а функция не устроит? ;)
Jeer (2002-08-20 15:36:00) [9]Лучшим вариантом будет использование функции, т.к. она отличается от процедуры тем, что возвращает определенный результат.
finction My: boolean;
begin
Result := False;
..
if ... then Result := True;
end;
Или использовать public переменную или глобальную переменную, устанавливаемую внутри Вашей процедуры.