Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не отображаются поля MemTable, при создании их в RunTime 
V
    Опции темы
Anry
Дата 25.9.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Создал клас.
В нем свойство типа TMemTableEh
При создании экземпляра собственно создаю мемтабле.
Список полей в нем создаю при выполнении определенного метода

Код

.....
var i: integer;
    NewField: TField;
begin
  FResultDataSet.DestroyTable;
  for i := 0 to FSetDataItems.Count - 1 do
  begin
    NewField := TStringField.Create(nil);
    NewField.Size := 50;
    NewField.FieldName := FSetDataItems.Items[i].ItemName;
    NewField.DisplayLabel := FSetDataItems.Items[i].DisplayName;
    NewField.Visible := true;
    FResultDataSet.Fields.Add(NewField);
  end;
  FResultDataSet.CreateDataSet;
  FResultDataSet.Open;
....


после чего датасорц натравливаю на этот датасет.
Так в гриде показывается два поля, которые создаются в рунтайме, но ни названий в заголовках грида, ни нормального редактирования в гриде не могу сделать.
В дебугере обращаюс к филдам по индексе - все свойства нормально заполнены.
В чем могут быть грабли? Подскажите пожалуйста.
PM MAIL   Вверх
ALeXandrK
Дата 25.9.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Так может Grid`у нужно тоже явно добавить нужные столбцы, указав все нужные свойства.


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Anry
Дата 25.9.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Это не помогает.  smile
Сам датасет ругается, когда обращаешься к полю методом FieldByName.
Хотя в дебугере по индексу поля смотрю его название у датасета - все нормально.
Может быть кто-нибудь делал подобное. Уже все перепробовал.
Возможно ответ где-то на поверхности?


Это сообщение отредактировал(а) Anry - 25.9.2007, 17:22
PM MAIL   Вверх
ALeXandrK
Дата 25.9.2007, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 342
Регистрация: 31.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 6



Может попробовать создать поле с помощью метода типа TFieldDef:
Код

function CreateField(Owner: TComponent; ParentField: TObjectField = nil; 
                                const FieldName: WideString = ''; CreateChildren: Boolean = True): TField;


Хотя в Help'е написано "Applications need never call CreateField directly.".

Или попробуй не через FieldByName обратиться, а через Fields[x]...
Может ошибка из-за того, что ты тип поля не указал.

Это сообщение отредактировал(а) ALeXandrK - 25.9.2007, 23:55


--------------------
Богат не/ни тот, у кого много, а тот, кому хватает
PM WWW   Вверх
Anry
Дата 26.9.2007, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Разобрался.
Нужно делать примерно так
Код

..........
var  FieldsDef: TFieldDef;
begin
  FResultDataSet.FieldDefs.Clear;
  FResultDataSet.DestroyTable;
  FieldsDef := FResultDataSet.FieldDefs.AddFieldDef;
  FieldsDef.Name := 'Field01';
  FieldsDef.DataType := ftString;
  FieldsDef.Size := 55;
  FResultDataSet.CreateDataSet;
...........


Это сообщение отредактировал(а) Anry - 26.9.2007, 08:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.