Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



ActiveControl имеет DataSet

Автор: OAmiry (Borland)

Для успешного кодирования необходимо включить typinfo в список используемых модулей. Код данного примера инвертирует логическое свойство Active набора данных, связанного с активным элементом управления при каждом нажатии пользователем клавиши ESC.


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




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS