Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сделано или нет? [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 переменную или глобальную переменную, устанавливаемую внутри Вашей процедуры.


Наверх

Титульная страница Поиск, карта сайта Написать письмо