Как определить свойство ProgramName в динамически созданном DataSet

m830
Дата: 11.06.2019 13:54:58
На форму, вызываемую по горячей клавише, помещен ComboBox, в которой накачены имена Grid-ов формы, на которой была нажата эта горячая клавиша. Требуется определить свойство ProgramName от DataSet, связанного через DataSource с выбранным из ComboBox Grid-ом. DataSet определяется процедурой
[/SRC]
procedure TForm3.ListBox1Click(Sender: TObject);
Var
  AGrid :TDBGrid;
  ADataSet :TDataSet;
begin
  Edit5.Text:=ListBox1.Items[ListBox1.ItemIndex];
  AGrid:= Form2.FindComponent(Edit5.Text) as TDBGrid;
If AGrid<>Nil Then
  begin
    DBGrid1.DataSource:=AGrid.DataSource;
    ADataSet:=AGrid.DataSource.DataSet;
    Edit6.Text:=ADataSet.Name;
  end;
end;
[SRC delphi]
DimaBr
Дата: 11.06.2019 14:05:09
Предполагаю что не ProgramName а FormName
FormName := TComponent(Dataset).Name;
DimaBr
Дата: 11.06.2019 14:05:37
FormName := TComponent(Dataset.Owner).Name;
m830
Дата: 11.06.2019 15:18:18
DimaBr,

Компонент Text6 после выбора Grid-а из ComboBox1 показывает ADOStoredProc1. Это объект с формы Form2. У него есть свойство ProgramName, имеющее значение CatLst. Вот до него мне нужно достучаться из формы Form3, на которой и лежит ComboBox1
Dimitry Sibiryakov
Дата: 11.06.2019 16:26:41

m830
Это объект с формы Form2. У него есть свойство ProgramName, имеющее значение CatLst.

Нет такого свойства у TADOStoredProc. Есть ProcedureName. "Достучаться" точно так же как и
до любого другого: через точку (с предварительным приведением типа если необходимо).

Posted via ActualForum NNTP Server 1.5

DimaBr
Дата: 11.06.2019 21:22:04
if ADataset is TADOStoredProc then AName = TADOStoredProc(ADataset).ProcedureName; 
m830
Дата: 13.06.2019 09:18:23
DimaBr,

Спасибо, получилось