procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);var PropInfo: PPropInfo ;PropValue: TObject;ds: TDataSource ;begin if Key = VK_ESCAPE then{ Основной код ниже }tryds := nil ;{ Проверяем, имеет ли компонент свойство DataSource }PropInfo := GetPropInfo(ActiveControl.ClassInfo, 'DataSource') ;if PropInfo <> nil then{ Свойство компонента datasource типа class (например, TDataSource) }if PropInfo^.PropType^.Kind = tkClass thenbeginPropValue := TObject(GetOrdProp(ActiveControl, PropInfo));{ Создаем слепок найденного TDataSource }ds := (PropValue as DB.TDataSource);{ Используем dataset, связанный с datasource }if not (ds.DataSet.State in dsEditModes) thends.DataSet.Active := not ds.DataSet.Active ;end ;excepton E: EInvalidCast do ShowMessage('Ошибка. Ожидался DataSource') ;end ;end; |
OAmiry/Borland [000566]