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

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

FormCreate [D5, dBase, FoxPro]


Gromozeka ©   (2002-02-15 07:13:00) 

procedure TForm1.FormCreate(Sender: TObject);
begin
with DataModule2 do
begin
Table1.DataBaseName := "sattv";
DataModule2.Table1.TableName := "tcurrent.dbf";
Table1.Open;
Table1.Filter := "se >= -120";
Table1.Filtered := true;
end;
end;
Выдает ошибку...Если размещаю компоненты Table1 и DataSource1 не в DataModule2, а на форме, то всё в порядке...
В чём, собственно дело-то?
Спасибо...


Black King   (2002-02-18 10:05:00) [1]

Togda perenesi etu stroku
Application.CreateForm(TDataModule2, DataModule2);
iz faila projekta v Form1.OnCeate.


Alexander Nagumanov   (2002-02-17 16:29:00) [2]

Не выйдет, если Form1 главная форма проекта.


Александр К.   (2002-02-15 14:08:00) [3]

В файле проекта поменяй местами строчки

Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);


Alexander Nagumanov   (2002-02-15 13:43:00) [4]

Вот именно, поэтому либо убрать DataModule из списка автоматически создаваемых форм и создавать его самому, либо данный код поместить в OnCreate этого DataModul"a, либо данный код надо поместить в процедуру, вызываемую после создания DataModule в коде проекта.


Arhelon   (2002-02-15 11:10:00) [5]

Насколько я разбираюсь в медецине ...
На момент OnCreate у первой формы, ещё НЕТ второй формы или ДатаМодуля.
И всё.


c2.Stalk3r   (2002-02-15 10:18:00) [6]

Просто нужно присвоение имени таблицы и её открытие переместить в событие onCreate Модуля данных:

procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
.....
{Здесь присвоение имени таблицы, базы данных и открытие таблицы}
end;

А далее уже как обычно работаешь из формы.

У меня осле этого исчезли все проблемы. :)


Quest   (2002-02-15 10:18:00) [7]

>Hawk2
> " Если не использовать with, а записать это в одну строчку DataModule2.DataModule2.Table1.TableName := "tcurrent.dbf"; получается что DataModule2 имеет еще DataModule2, а потом уже Table1. "
ты не прав


Hawk2   (2002-02-15 10:04:00) [8]

To Gromozeka:

А что это за странная запись и для чего так писать:

procedure TForm1.FormCreate(Sender: TObject);
begin
with DataModule2 do //Работаем с DataModule2
begin
Table1.DataBaseName := "sattv";
//А зачем опять DataModule2
DataModule2.Table1.TableName := "tcurrent.dbf";
Table1.Open;
Table1.Filter := "se >= -120";
Table1.Filtered := true;
end;
end;

Если не использовать with, а записать это в одну строчку DataModule2.DataModule2.Table1.TableName := "tcurrent.dbf"; получается что DataModule2 имеет еще DataModule2, а потом уже Table1. Попробуй так:

procedure TForm1.FormCreate(Sender: TObject);
begin
with DataModule2 do //Работаем с DataModule2
begin
Table1.DataBaseName := "sattv";
Table1.TableName := "tcurrent.dbf";
Table1.Open;
Table1.Filter := "se >= -120";
Table1.Filtered := true;
end;
end;


Quest   (2002-02-15 09:06:00) [9]

возможно DataModule2 ещё не создан в момент FormCreate,
попробуй вызвать это так:
procedure TForm1.FormActivate(Sender: TObject);
Begin
with DataModule2 do
IF Table1.active = false then
begin
Table1.DataBaseName := "sattv";
DataModule2.Table1.TableName := "tcurrent.dbf";
Table1.Open;
Table1.Filter := "se >= -120";
Table1.Filtered := true;
end;
End;


Gromozeka   (2002-02-15 08:48:00) [10]

Включил...
Да чёрт его знает, на что...Ошибка по такому-то адресу в екзешнике...


Quest   (2002-02-15 07:33:00) [11]

а ты включил DataModule2 в проект и в Uses Form1?
на что вообще ругается то?


Наверх

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