Текущий архив: 2002.11.21;
Скачать: CL | DM;
ВнизУказатели. Найти похожие ветки
← →
RDA (2002-11-12 16:37) [0]Никогда не понимал указателей, может счас пойму. Есть три модуля.
1. Главная форма (fmMain:TForm).
2. Модуль с компонентами доступа к базе (DM:TDataModule).
3. Форма редактирования базы (fmPred:TForm).
В DM описана процедура которая заполняет выпадающий список расположенный на fmMain значениями из таблицы. (Скорее всего это уже не правильно, но ... пока так).
procedure TDM.LoadPred(ABarComboBox:TdxBarCombo);
begin
if not Pred.IsEmpty then
begin
ABarComboBox.Items.Clear;
Pred.First;
while not Pred.Eof do
begin
if ABarComboBox.Items.Count=0 then ABarComboBox.Items.Add(PredNAZV.AsString)
else
if ABarComboBox.Items.IndexOf(PredNAZV.AsString)=-1
then ABarComboBox.Items.Add(PredNAZV.AsString);
Pred.Next;
end;
end;
end;
Все работает нормально.
Но необходимо поновой заполнить список в случае изменения таблицы (вставка, удаление, изменение), которая редактируется путем вызова fmPred.
Вопрос, как это правильно организовать?
Пока у меня есть два варианта:
1. При вызове из fmMain передать fmPred как переменную выпадающий список, которую использовать при закрытии fmPred для передачи в DM как параметр. Не очень.
2. Повесить в DM на OnDataChange соответствующей таблицы вышеприведенную процедуру - но что тогда использовать как параметр для нее.
Мне кажется здесь нужно как-то использовать указатели на объект, но как ... Может на этом примере разбирусь.
← →
Reindeer Moss Eater (2002-11-12 16:43) [1]Попробуй так:
procedure TDM.LoadPred(AList:TStrings);
← →
Reindeer Moss Eater (2002-11-12 16:52) [2]Либо
procedure fmMain.SetupDropDownList(AList:Tstrings);
begin
;Запоняем выпадающий список какого-то контрола переданного из DM
end;
Страницы: 1 вся ветка
Текущий архив: 2002.11.21;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.008 c