Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.12.2009, 22:27
onelucky onelucky вне форума
Прохожий
 
Регистрация: 01.12.2009
Сообщения: 7
Репутация: 10
По умолчанию Динамически созданный компонент

Доброго времени всем.
Помогите разобраться: В рантайме динамически создаются компаненты TDBEdit
Код:
var
 editList: array of tDBEdit;
begin
 if q=true then begin
   form1.Table1.Open;
  b:=form1.Table1.FieldCount;
    form2.Table2.First;
    SetLength(editList,b-1);

  for i:=1 to high(editList)-1 do
    begin

    n:= form2.Table2.Fields[2].AsInteger;
      editList[i]:=tDBEdit.Create(Form1);
      editList[i].Left:=380;
      editList[i].Top := 50+i*20;
      editList[i].DataSource:=nil;
      editList[i].DataSource:=form1.DataSource1;
      editList[i].DataField:=form1.Table1.Fields.Fields[i+2].FieldName;
        if editList[i].Field.AsDateTime <> 0 then begin
        labelList[i].Caption :=DateToStr(editList[i].Field.AsDateTime+n*30);
          if StrToDate(labelList[i].Caption) < Date then labelList[i].Font.Color:=clRed;
          end;
      editList[i].Visible:= true;
    
      Form1.InsertControl(editList[i]);

       form2.Table2.Next;
    end;
    end;
      SetLength(editList,0);
  
   end;
...

Далее програмно удаляется поле из таблицы

form1.table1.Close ;
form1.Query1.Close;
form1.Query1.SQL.Clear;
form1.Query1.SQL.Add('ALTER TABLE "C:\Курсовая\Data\Spisok"');
form1.Query1.SQL.Add('DROP Data_'+x);
form1.Query1.ExecSQL;

form1.table1.Open ; // Вот здесь возникает ошибка "Field 'Data_x' not found".
Admin: Пользуемся тегами для оформления кода!

Я так понимаю, что надо удалить конкретный компанент TDBEdit, но он создан динамически и как до него добраться не могу сообразить.
Кто знает просветите НАЧИНАЮЩЕГО.

Последний раз редактировалось Admin, 03.12.2009 в 22:31.
Ответить с цитированием
  #2  
Старый 03.12.2009, 22:40
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,100
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Варианты:
1. Сохранять ссылки на них в массиве или списке.
2. Создавать их с владельцем-формой. Тогда она их сама "прибъет", когда будет удаляться.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:56.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025