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