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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 15:21   #1
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию Работа с динамическими объектами

Описание:
работа с БД.
Создается динамическая вкладка с объектами типа edit и memo и кнопками.
Кнопке делаю обработчик:
Код:
procedure TForm1.SQLInsertClick(Sender: TObject);
var
inser, ins, ins2 : string;
begin
  (sender as tsbitbtn).Enabled := false;
  inser := edittb[0].Text + ',"' + Datetb.text + '","' +
         memotb[2].Text + '","' + comboxtb[3].Text + '","' + comboxtb[4].Text + '","' +
         edittb[5].Text + '","' + comboxtb[6].Text + '","' + memotb[7].Text + '"';
  sqlinsert(query, base, alcol, inser);

end;

procedure TForm1.SQLInsert(var query : tquery;
table,colons,insert : string);
var
sql : string;
begin
query.Active := false;
query.Close;
query.SQL.Clear;
sql := 'insert into ' + table + ' (' + colons + ') values (' +
 insert + ')';
query.SQl.Add(sql);
query.ExecSQL;
query.sql.Clear;
sql := 'select '+ col + ' from ' + base;
query.SQl.Add(sql);
query.ExecSQL;
query.Active := true;
colonsname;
end;
С обработчиком все впорядке, все добавляется. Но работает только с одной открытой вкладкой, последней. Если будет две вкладки, и последнюю закрыть и попытаться добавить инфу в базу то, выкинет ошибку. Суть ошибки заключается в том, что он не находить полей edit, memo и т.д. Это понятно. Потому, что я разрушил прошлую вкладку(tb.destroy);
Вопрос: Как мне добиться сохранения элементов на вкладке, чтобы если закрыть последнею вкладку, с первой можно было бы работать так же.
medved6216 вне форума Ответить с цитированием
Старый 17.11.2011, 16:09   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Надеюсь тип "вкладки" я угадал.
Код:
var
  i: integer;
begin
  for I := 0 to PageControl1.ActivePage.ControlCount - 1 do
  begin
    if PageControl1.ActivePage.Controls[i] is TEdit then
    begin
      ShowMessage((PageControl1.ActivePage.Controls[i] as TEdit).Text);
    end;
  end;
Идея понятна?
Баламут вне форума Ответить с цитированием
Старый 17.11.2011, 18:31   #3
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Идея понятна как мне теперь зацепить первый объект этого класса, а как второй? ) Мозги уже устали
medved6216 вне форума Ответить с цитированием
Старый 17.11.2011, 19:08   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Свойство Tag объектов можно для этого использовать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Access Violation при закрытии формы с динамическими объектами Adonidi Общие вопросы Delphi 3 20.11.2010 20:34
Работа с динамическими картинками krikaved Общие вопросы Delphi 3 17.03.2010 23:48
Управление динамическими объектами по Handle SibBear Общие вопросы Delphi 3 17.03.2009 19:12
Работа с динамическими переменными DonLena Паскаль, Turbo Pascal, PascalABC.NET 1 14.10.2008 20:05