Вниз
Скачать: CL | DM;

Вызов прцедур во время события 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.012 c
1-44657
Manfred
2003-07-02 11:24
2003.07.14
Вызов прцедур во время события OnCreate()


1-44638
MetalFan
2003-06-30 14:07
2003.07.14
---|Ветка была без названия|---


14-44907
artemkin
2003-06-28 09:29
2003.07.14
Запуск 98-х виндов


1-44656
Igorok
2003-07-02 12:36
2003.07.14
StringGrid + OnKeyPress


1-44764
INCOGNITO
2003-07-02 00:43
2003.07.14
ReadOnly Files




   Наверх