Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2010, 18:43   #1
sislexa
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию Работа с динамически создаваемыми компонентами

В программе имеется кнопка добавления компонентов которая создаёт 1 компонента LookupCombobox и 2компонента DBEdit.
1)как связать эти компоненты с базой данных чтоб они отображали данные из неё?
2)как записать эти компоненты в формулу компонента Edit который считает сумму чисел записанных в создаваемые DBEditы
Заранее благодарен за ответы!
sislexa вне форума Ответить с цитированием
Старый 24.10.2010, 20:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну предположим создал ты LookupCombobox в переменку LCB
Тогда не забудь
Код:
LCB.DataSource:=тот Датасорц, который привязан к компоненту БД
LCB.DataField:=Поле к которому вязаться
LCB.ListSource:=тот датасорц откуда будет браться список по ключевому полю
LCB.ListField:=поле по которому будет связка и выборка данных в список
То же самое для DBEdit - описать Datasouce и dataField
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.10.2010, 21:24   #3
sislexa
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

а как LookupCombobox создать в переменку LCB.?
sislexa вне форума Ответить с цитированием
Старый 24.10.2010, 21:47   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

LCB - это имя созданного LookupCombobox...
А переменка - это перемена между уроками...
Может, стоит все же литературу почитать, а ?
mihali4 вне форума Ответить с цитированием
Старый 25.10.2010, 13:09   #5
sislexa
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

Сори немного не въехал. Всё сделал как вы сказали в итоге получилось так:
Цитата:
Comboboxs[count1].DataField:=Книги;
Comboboxs[count1].ListSource:=ds4;
он ругается вот такими ошибками
[Error] Unit2.pas(131): Undeclared identifier: 'DataField'
[Error] Unit2.pas(131): Illegal character in input file: 'Т' ($D2)
[Error] Unit2.pas(132): Undeclared identifier: 'ListSource'
sislexa вне форума Ответить с цитированием
Старый 25.10.2010, 13:18   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Всё сделал как вы сказали
полностью код создания в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.10.2010, 13:28   #7
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Код:
LCB := TLookupComboBox.Create(Self);
LCB.DataSource:=тот Датасорц, который привязан к компоненту БД
LCB.DataField:=Поле к которому вязаться
LCB.ListSource:=тот датасорц откуда будет браться список по ключевому полю
LCB.ListField:=поле по которому будет связка и выборка данных в список
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 25.10.2010, 13:57   #8
sislexa
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

вот код кнопки которая создаёт эти компоненты
Код:
procedure Tfrm2.btn1Click(Sender: TObject);
begin
  if count1<=30 then begin
  Comboboxs[count1]:=TCombobox.Create(frm2);
  Comboboxs[count1].Top:=btn1.Top;
  Comboboxs[count1].Left:=10;
  Comboboxs[count1].width:=104;
  Comboboxs[count1].height:=21;
  Comboboxs[count1].Parent:=frm2;
  Comboboxs[count1].Show;
  inc(count1);
  DbEdits[count2]:=TDbEdit.Create(frm2);
  DbEdits[count2].Top:=btn1.Top;
  DbEdits[count2].Left:=144;
  DbEdits[count2].width:=70;
  DbEdits[count2].height:=21;
  DbEdits[count2].Parent:=frm2;
  DbEdits[count2].Show;
  DbEdits[count2+1]:=TDbEdit.Create(frm2);
  DbEdits[count2+1].Top:=btn1.Top;
  DbEdits[count2+1].Left:=251;
  DbEdits[count2+1].width:=77;
  DbEdits[count2+1].height:=21;
  DbEdits[count2+1].Parent:=frm2;
  DbEdits[count2+1].Show;
  inc(count2,2);
  btn1.Top:=btn1.Top+24;
  spnl1.Top:=spnl1.Top+24;
  Comboboxs[count1].DataField:=Цена;
  Comboboxs[count1].ListSource:=ds4;
  end;
end;

Последний раз редактировалось Stilet; 25.10.2010 в 16:48.
sislexa вне форума Ответить с цитированием
Старый 25.10.2010, 14:49   #9
sislexa
Пользователь
 
Регистрация: 24.10.2010
Сообщений: 16
По умолчанию

пробовал вот так сё равно та-же ерунда
Код:
procedure Tfrm2.btn1Click(Sender: TObject);
begin
  if count1<=30 then begin
  Comboboxs[count1]:=TCombobox.Create(frm2);
  Comboboxs[count1].Top:=btn1.Top;
  Comboboxs[count1].Left:=10;
  Comboboxs[count1].width:=104;
  Comboboxs[count1].height:=21;
  Comboboxs[count1].Parent:=frm2;
  Comboboxs[count1].DataField:=Цена;
  Comboboxs[count1].ListSource:=ds4;
  Comboboxs[count1].Show;
  inc(count1);
  DbEdits[count2]:=TDbEdit.Create(frm2);
  DbEdits[count2].Top:=btn1.Top;
  DbEdits[count2].Left:=144;
  DbEdits[count2].width:=70;
  DbEdits[count2].height:=21;
  DbEdits[count2].Parent:=frm2;
  DbEdits[count2].Show;
  DbEdits[count2+1]:=TDbEdit.Create(frm2);
  DbEdits[count2+1].Top:=btn1.Top;
  DbEdits[count2+1].Left:=251;
  DbEdits[count2+1].width:=77;
  DbEdits[count2+1].height:=21;
  DbEdits[count2+1].Parent:=frm2;
  DbEdits[count2+1].Show;
  inc(count2,2);
  btn1.Top:=btn1.Top+24;
  spnl1.Top:=spnl1.Top+24;
  end;
end;

Последний раз редактировалось Stilet; 25.10.2010 в 16:48.
sislexa вне форума Ответить с цитированием
Старый 25.10.2010, 14:54   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Comboboxs[count1]:=TCombobox.Create(frm2);
Тебе нужен LookupCombobox а ты запращиваешь TCombobox...
Тебя это не смущает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с компонентами стороннего приложения imprezident Win Api 1 30.05.2009 22:12
Работа с компонентами Делфи Ainur Помощь студентам 2 22.05.2009 11:56
Работа с компонентами Ky3Heu, Общие вопросы Delphi 2 24.04.2009 11:58
Работа с компонентами Ehlib cherry25 БД в Delphi 4 26.02.2009 10:20
работа с компонентами через WinApi user_jasser Win Api 17 17.11.2008 22:11