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

Тема в разделе "Delphi - Компоненты", создана пользователем sislexa, 24 окт 2010.

  1. sislexa

    sislexa Гость

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

    vital Больной Компом Детектед

    Регистрация:
    29 янв 2006
    Сообщения:
    2.468
    Симпатии:
    27
    1. Точно так же , как если бы вы их созлавли в десигн тайм. Указать руками нужные свойства.
    Набор слов. Что значит формула эдита? Научитесь формировать мысли так, что бы они был понятны другим.
     
  3. sislexa

    sislexa Гость

    Код (Text):
    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
     
  4. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    Как именно вы создаете динамический елемент?
    так:
    Код (Text):
    var dbedt:TDbEdit;
    ...
    dbedt:=TDbEdit.Create;
    ...
    или так:
    Код (Text):
    ...
    with (TDbEdit.Create) do
    begin
    {задание свойств}
    end;
    ...
     
  5. sislexa

    sislexa Гость

    Код (Text):
    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);
    вот так
     
  6. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    ну тогда
    Код (Text):
    procedure Tfrm2.edt5Change(Sender: TObject);
    begin

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

    sislexa Гость

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

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

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    возможно "i" неправильное(пместо него должен быть номер DbEdits).
     
Загрузка...

Поделиться этой страницей