Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 12:10 23.04.21 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Странност на TField създаден в RunTime
Автор NikB (любопитен)
Публикувано04.07.04 21:44  



Опитвам се от един tDataSet да създам всичките му tField (разбира се от конкретен тип - tIntegerField, и т.н) по време на изпълнение, но не мога да им задам стойност на пропъртито DataSet докато DataSet не е отворен. И се получава така, че когато DataSet се затвори, съответните tField загубват своя DataSet.

Ще съм благодарен на всякакви съвети :)

Примерът е дългичък, ама е четлив :)



{}procedure FieldDefs_ToFields(aOwner: tComponent; aDataSet: tDataSet);
// Нещо не мога да направя RunTime Fields да са същите като DisignTime Fields:
// - aDataSet.FieldDefs.Count става 0 при Close;
// - xField.DataSet не може да се установи.
var
k : integer;
xFieldDef : tFieldDef;
xTTField : TFieldClass;
xField : tField;
begin
if (aOwner<>nil) and (aDataSet<>nil) then begin

aDataSet.Open;
aDataSet.Fields.Clear;
k:=0;
while k<aDataSet.FieldDefs.Count do begin
xFieldDef := aDataSet.FieldDefs[k];
xTTField := DefaultFieldClasses[xFieldDef.DataType];
if xTTField<>nil then begin
xField := xTTField.Create(aOwner);
if xField<>nil then begin
with xField do begin
Name := xFieldDef.Name;
FieldName := xFieldDef.Name;
// DataSet := aDataSet;
if xFieldDef.DataType in ftFixedSizeTypes then begin
Size := 0;
end else begin
Size := xFieldDef.Size;
end;
end;
end;
aDataSet.Fields.Add(xField);
end;
inc(k);
end;

aDataSet.Close;
k:=0;
while k<aDataSet.Fields.Count do begin
xField := aDataSet.Fields[k];
if xField<>nil then begin
with xField do begin
DataSet := aDataSet;
end;
end;
inc(k);
end;
aDataSet.Open;
end;
end;





Цялата тема
ТемаАвторПубликувано
* Странност на TField създаден в RunTime NikB   04.07.04 21:44
. * Re: Странност на TField създаден в RunTime Mr.l   04.07.04 22:33
. * По-подробен опит NikB   05.07.04 09:31
. * Re: По-подробен опит andrew_nikoloff   05.07.04 09:42
. * Re: По-подробен опит NikB   05.07.04 11:03
. * Re: Странност на TField създаден в RunTime andrew_nikoloff   04.07.04 23:19
. * Не се справих :) NikB   05.07.04 09:18
. * Хмммммм.... andrew_nikoloff   05.07.04 09:39
. * Благодаря! NikB   05.07.04 11:06
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2021 Dir.bg Всички права запазени.