Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.06;
Скачать: CL | DM;

Вниз

Одна форма для всех таблиц   Найти похожие ветки 

 
quadronik ©   (2005-09-25 01:52) [0]

Решил сэкономить на размере приложения и поступил так:
создал одну форму для заполнения нескольких таблиц. На форму положил DBEdit и при OnShow формы написал так:
if flag_tbl=1 then //flag_tbl -флаг подключаемой таблицы
 begin
 dbedit.DataSource:=datamodule1.DataSource_regions;
 dbedit.DataField:="region";
 end;
if flag_tbl=2 then
 begin
 dbedit.DataSource:=datamodule1.DataSource_city;
 dbedit.DataField:="city";
 end; и т.д.
Заметил такую ерунду:если открыть форму первый раз, то все нормально(DBEdit правильно настраивается на нужную таблицу), но если второй, третий и т.д. раз и для другой таблицы - то не происходит переиницилизация свойств DataSource и DataField, и выводится сообщение <DBEdit: Field "region" not found>(или <DBEdit: Field "city" not found> - зависит от того к какой таблице был подключен DBEdit последний раз) .
При повторном открытии формы для этой же таблицы - никаких ошибок (DataSource и DataField настроены правильно). Ошибка повторяется если попробовать открыть форму для другой таблицы.
Проще говоря: Дельфи ругается, что не может найти поля той таблицы, которая была подключена последней раз.
ЗЫ. Прощу прощения, если объяснил недоходчиво. Пытался прорисовать всю картину происходящего.
Спасибо.


 
Johnmen ©   (2005-09-25 01:57) [1]

Видимо, ОнШоу генерится только один раз...
Посему, что значит "открыть форму" ?


 
Prohodil Mimo ©   (2005-09-25 16:35) [2]

не забывай устанавливать DataField:="". перед сменой DataSource

begin
 dbedit.DataField:="";
dbedit.DataSource:=datamodule1.DataSource_regions;
dbedit.DataField:="region";
end;

Я создаю процедуру, которая делает всё что надо, а потом открывает форму.

Procedure FActivate;
Begin
{
тут делаем всё что надо
}
  form1.showmodal;
End;


 
quadronik ©   (2005-09-26 06:00) [3]

>Prohodil Mimo
>не забывай устанавливать DataField:="". перед сменой DataSource

Именно в этом и была загвоздка, теперь все заработало
Спасибо, что выручили!.



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

Текущий архив: 2005.11.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
3-1127459903
Леди
2005-09-23 11:18
2005.11.06
Что за ошибка? Command contains unrecognized phrase/keyword.


14-1129122903
Антоний
2005-10-12 17:15
2005.11.06
Для печати проспектов


2-1129434980
DimaDima
2005-10-16 07:56
2005.11.06
Можно ли обращаться к массивам по индексам в их имени?


4-1125004126
1236434
2005-08-26 01:08
2005.11.06
ID процеса по его имени


1-1129210536
devmaster
2005-10-13 17:35
2005.11.06
MDi Form + DLL(MDI Child) ?