Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическое создание объекта TDBLookUpComboBox, Свойство ListSource 
:(
    Опции темы
Dolphinchik
Дата 23.2.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго времени суток, уважаемые винградовцы! 
Подскажите, пожалуйста, по проблеме. Я в коде создаю объекты TSimpleDataSet, TDataSource , TDBLookUpComboBox и TLabel
Код

while not Param_SimpleDataSet.Eof do
   begin
     if Param_SimpleDataSet.FieldByName(FindType).AsInteger=1 then
     begin
        // TSimpleDataSet
          with TSimpleDataSet.Create(Self) do
          begin
            Name := 'SimpleDataSet_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString);
            //ShowMessage(Name);
            Connection := MainForm.SQLConnection1;
            DataSet.CommandType := ctTable;
            DataSet.CommandText := Param_SimpleDataSet.FieldByName('parambox_field').AsString;
            DataSet.Active := true;
            Active := true;
          end;
          // TDataSource
          with TDataSource.Create(Self) do
          begin
            Name := 'DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString);
            Enabled := true;
            AutoEdit := true;
          end;
          // TLabel
          with TLabel.Create(Self) do
          begin
            Name := 'Label_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString);
            Caption := Param_SimpleDataSet.FieldByName('parambox_name').AsString;
            Parent := MainForm.GroupBox2;
            Left := x;
            Top := y;
            Width := a;
            Height := b;
          end;
        //TDBLookUpComboBox
        test:='DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString);
          with TDBLookUpComboBox.Create(Self) do
          begin
            Name := 'DBLookUpComboBox_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString);
            Caption := Param_SimpleDataSet.FieldByName('parambox_name').AsString;
            Parent := MainForm.GroupBox2;
            if Self.FindComponent('DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString)) = nil then  ShowMessage('Объект DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString)+' не найден');
            ListSource.DataSet.Name := 'DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString); // тут возникает ошибка
            ListField := ListSource.DataSet.Fields[1].FieldName;
            KeyField := ListField;
            Left := x+80;
            Top := y;
            Width := a;
            Height := b;
          end;
     end
     else if Param_SimpleDataSet.FieldByName(FindType).AsInteger=2 then
     begin
 // что-то там..
     end;
     Param_SimpleDataSet.Next;
     y:=y+40;
   end;



То есть вот в ниже приведенной строчке кода возникает ошибка. Хотя объект TDataSource создается, это я проверяла с помощью FindComponent. У меня подозрение что вместо ListSource.DataSet.Name нужно что-то другое, но что не пойму. Подскажите пожалуйста в чем может быть проблема?

Код

ListSource.DataSet.Name := 'DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString); // тут возникает ошибка




Если не сложно, модеры  smile  , перенесите пожалуйста в "Delphi: Базы данных и репортинг", ошиблась веткой. 

Это сообщение отредактировал(а) Dolphinchik - 23.2.2009, 01:24
PM MAIL MSN   Вверх
Dolphinchik
Дата 23.2.2009, 03:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Разобралась!

Оказывается проще пареной репы, нужно делать вот так:
Код

ListSource:=Self.FindComponent('DataSource_'+(Param_SimpleDataSet.FieldByName('parambox_field').AsString)) as TDataSource;


Другой вопрос правда напрашивается, насколько FindComponent быстро работает. У меня правда объектов не особо будет много в программе, но все таки, если есть альтернативный вариант и если он действительно нужен, огласите пожалуйста, а пока все!  smile 

PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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