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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2009, 20:42   #1
Zevgma
Новичок
Джуниор
 
Регистрация: 26.09.2009
Сообщений: 2
Сообщение Подстановка кода

Уважаемое сообщество!

есть код:

Код:
with dm.exItems do begin
  Locate('id', id_Folder, []);
  Edit;
  FieldByName('fol').AsInteger := 1;
  Post;
end;
, где "dm" - Data module, а "exItems" - название таблицы.

Проблемка в том, что таких таблиц у меня 11. Смысл их разный, но базовая структура абсолютно одинаковая. Соответственно действия, выполняемые для них (как то добавление элемента, изменение и прочие) тоже совершенно одинаковые.

Вопрос - существует ли способ выбрать, допустим, строчку:

Код:
with dm.exItems do begin
в зависимости от заранее определённого параметра ActiveTab?

т.е.
если "ActiveTab = 1" то "with dm.exItems do begin"
если "ActiveTab" = 2 то "with dm.incItems do begin"
если "ActiveTab = 3" то "with dm.accounts do begin"
и т.д.

Заранее спасибо.
Zevgma вне форума Ответить с цитированием
Старый 26.09.2009, 22:19   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

Можно добавить в класс модуля переменную что-то вроде: sel_table: TDataSet; // Вместо TDataSet соответствующий тип таблиц нужно подставить
В обработчике смены активной вкладки написать:
Код:
case ActiveTab of
1: dm.sel_table = dm.exItems;
2: dm.sel_table = dm.incItems;
...
end;
Если не хочется писать длинный case, то можно создать массив:
Код:
tables: array [1..11] of TDataSet;
и в OnCreate модуля написать:
Код:
tables[1] := exItems;
tables[2] := incItems;
...
ну а на смену вкладки написать код:
Код:
dm.sel_table := dm.Tables[ActiveTab];
ну а в коде уже писать:
Код:
with dm.sel_table do begin
pu4koff на форуме Ответить с цитированием
Старый 27.09.2009, 01:29   #3
Zevgma
Новичок
Джуниор
 
Регистрация: 26.09.2009
Сообщений: 2
По умолчанию Спасибо

Уважаемый, pu4koff, большое спасибо за ответ.

Вы просто спасли меня и моё творение от кучи ненужного кода и очень многих часов моего времени, которые нужно было бы потратить в случае, если что-то пришлось бы изменить.

Наверное это очень просто, но я этого не знал - теперь знаю. Спасибо. +1
Zevgma вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка и подстановка данных. HIC БД в Delphi 10 10.09.2009 11:34
Подстановка значений в MS Access Vit@L БД в Delphi 12 04.09.2009 16:24
Подстановка в ячейках Garrison Microsoft Office Excel 13 31.07.2009 21:44
Подстановка имен книг mephist Microsoft Office Excel 2 20.07.2009 11:16
Сравнение и подстановка tsasha1 Microsoft Office Excel 2 08.04.2008 14:47