Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-3649
Stone
2002-06-20 22:50
2002.09.02
виртуальный desktop


1-3503
maxim2
2002-08-21 13:40
2002.09.02
В каком файле находится исходник DBGrid ?


3-3296
Leran2002
2002-08-13 07:46
2002.09.02
Физическое сохранение данных


1-3432
Vacheslav
2002-08-22 21:06
2002.09.02
Как програмно скомпилировать еще один ехе шник?


1-3364
TBeginner
2002-08-22 09:12
2002.09.02
Указатели





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский