• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Динамически создаваемые компоненты

  • Автор темы sislexa
  • Дата начала
S

sislexa

В программе имеется кнопка добавления компонентов которая создаёт 1 компонента LookupCombobox и 2компонента DBEdit.
1)как связать эти компоненты с базой данных чтоб они отображали данные из неё?
2)как записать эти компоненты в формулу компонента Edit который считает сумму чисел записанных в создаваемые DBEditы
Заранее благодарен за ответы!
 
V

vital

1. Точно так же , как если бы вы их созлавли в десигн тайм. Указать руками нужные свойства.
как записать эти компоненты в формулу компонента Edit который считает сумму чисел записанных в создаваемые DBEditы
Набор слов. Что значит формула эдита? Научитесь формировать мысли так, что бы они был понятны другим.
 
S

sislexa

Код:
procedure Tfrm2.edt5Change(Sender: TObject);
begin

edt5.Text:=FloatToStr(StrToFloat(db edt1.Text)+StrToFloat(dbedt2.Text)
+StrToFloat(TDbEdit.Text));
end;

TDbEdit - это полученный компонент

ругается вот так
[Error] Unit2.pas(107): Method identifier expected
 
D

Dock1100

Как именно вы создаете динамический елемент?
так:
Код:
var dbedt:TDbEdit;
...
dbedt:=TDbEdit.Create;
...
или так:
Код:
...
with (TDbEdit.Create) do
begin
{задание свойств}
end;
...
 
S

sislexa

Код:
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);
вот так
 
D

Dock1100

ну тогда
Код:
procedure Tfrm2.edt5Change(Sender: TObject);
begin

edt5.Text:=FloatToStr(StrToFloat(DbEdits[i]..Text)+StrToFloat(DbEdits[i].Text)
+StrToFloat(DbEdits[i].Text));
end;
 
S

sislexa

Код:
procedure Tfrm2.edt5Change(Sender: TObject);
begin

edt5.Text:=FloatToStr(StrToFloat(dbedt1.Text)+StrToFloat(dbedt2.Text)
+StrToFloat(DbEdits[i].Text));
end;
воттакой у меня получился код это 2 уже имеющиеся на форме DBEditы прибавляются к тем что были созданы. Но етот код почему-то не работает вылазиет вот это окно.
 
D

Dock1100

возможно "i" неправильное(пместо него должен быть номер DbEdits).
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!