Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

Вызов прцедур во время события OnCreate()   Найти похожие ветки 

 
Manfred   (2003-07-02 11:24) [0]

Здравствуйте, уважаемые мастера. Столкнулся с таким неприятным явлением:
Пытаюсь открыть таблицу базы данных в событии OnCreate формы, но получаю ошибку "Access vialotion". Решил проверить, в чём же дело. Кинул на форму кнопочку, прописал в ней открытие таблицы, надавил - таблица открылась. Это глюк или я чего-то не знаю?
С уважением, Manfred.


 
clickmaker   (2003-07-02 11:27) [1]

Лучший способ узнать - запустить под отладчиком


 
Skier   (2003-07-02 11:27) [2]

>Manfred © (02.07.03 11:24)
Перенеси код из OnCreate в OnShow. Не поможет ?


 
Юрий Федоров   (2003-07-02 11:28) [3]

Скорее всего какие-то объекты еще не созданы.
Таблица в дата-модуле небось ?


 
Manfred   (2003-07-02 11:34) [4]


> Юрий Федоров

Да, в дата-модуле. Дума, что преждевременно вызывать открытие таблицы в OnCreate формы. Не так ли?


> Skier

Да, так работает, но хотелось бы всё-таки узнать, в чём дело, дабы опять не наступить на те же грабли.


 
Manfred   (2003-07-02 11:35) [5]


> clickmaker

Запускал, но, признаться, так и не понял, в чём же дело :-(


 
Skier   (2003-07-02 11:37) [6]

>Manfred © (02.07.03 11:34)
Да ты просто пытаешься отрисовывать на окне (форме), которое
ещё не создано, можно поступить так :

-перекрыть метод формы CreateWnd
-и после inherited написать тот код, который был у тебя в
OnCreate


 
clickmaker   (2003-07-02 11:38) [7]

Приведи код OnCreate и код открытия таблицы


 
Юрий Федоров   (2003-07-02 11:41) [8]

Видимо дата-модуль еще не создан, он создается в файле проекта после главной формы, а событие OnCreate происходит до его создания.
Просто убери создание дата-модуля из файла проекта, и поставь его в OnCreate формы первой строкой. Думаю так.


 
Manfred   (2003-07-02 11:44) [9]


> clickmaker

procedure TForm1.FormCreate(Sender: TObject);
begin
dmDataModule.tblSites.Active:=True;
end;


> Skier

А нельзя ли попроще? Я ведь просто хочу, чтобы у меня открывалась таблица при запуске приложения, а в WinAPI нет желания залезать - по своей невнимательности только напложу ошибок.


 
Manfred   (2003-07-02 11:47) [10]


> Юрий Федоров
Неплохая идея, следует попробовать. О результатах доложу :-)


 
Skier   (2003-07-02 11:47) [11]

>Manfred © (02.07.03 11:44)

> а в WinAPI нет желания залезать - по своей невнимательности
> только напложу ошибок.

В данном случае это не API, а скорее ООП...


 
Семен Сорокин   (2003-07-02 11:47) [12]

2Manfred
слушай Юрий Федоров © (02.07.03 11:41) - верно говорит


 
Юрий Федоров   (2003-07-02 11:52) [13]

проверить просто. Ставишь точку останова на строке
dmDataModule.tblSites.Active:=True;

Если то что я говорю верно, то dmDataModule в этом месте равен nil


 
Manfred   (2003-07-02 11:52) [14]


> Семен Сорокин


> Юрий Федоров

Я знал, что здесь живут МАСТЕРА!!! Как вы поняли, всё получилось. Спасибо огромное!


 
Manfred   (2003-07-02 11:54) [15]

Блин, а главное - всё так тривиально, как я сам не додумался?!!!


 
panov   (2003-07-02 12:48) [16]

TDataModule можно оставить в списке AutoCreate проекта, а вот открытие таблиц, находящихся в TDataModule, выполнять в TDataModule.OnCreate.


 
mrcat   (2003-07-02 13:36) [17]

TDataModule в AutoCreate должен создаваться до главной формы:

Application.Initialize;
Application.CreateForm(TdMBase, dmBase); Application.CreateForm(TMainForm, MainForm);
Application.Run;


 
Семен Сорокин   (2003-07-02 14:02) [18]

mrcat © (02.07.03 13:36)
а ничего, что тогда dmBase будет главной формой? :)


 
mrcat   (2003-07-02 14:06) [19]

Семен Сорокин © (02.07.03 14:02)

с чего TDataModule быть главной формой? классы-то разные :)


 
Семен Сорокин   (2003-07-02 14:39) [20]

mrcat © (02.07.03 14:06)
согласен, торможу :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
6-44776
AVovikA
2003-05-05 18:22
2003.07.14
Как на сервере ServerSocket проверить живой ли ClientSocket


14-44809
Александр из Минска
2003-06-28 16:04
2003.07.14
Интересное наблюдение (советую прочитать)


1-44744
Pentium 5
2003-07-01 12:51
2003.07.14
TExcelApplication, завершение процесса EXCEL.EXE


1-44752
BOA_KAA
2003-07-01 16:29
2003.07.14
Как узнать, откуда запущена консольная программа?


7-44930
Renegate
2003-05-05 09:26
2003.07.14
Считывание и запись данных паралельного порта.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский