На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Компоненты / Создание компонента TTable без формы 4 Сделать домашней страницей Добавить в избранное Написать писмо

Создание компонента TTable без формы 4


Я привожу некоторый код, касающийся описываемой проблемы: он работал, когда я использовал его в большом приложении. Я не знаю специфического метода создания компонента TTable вне родителей, поэтому я пошел путем создания своего класса от TTable во время инициализации модуля. Удобство такого подхода объясняется наличием под рукой всегда готового к работе экземпляра класса, стоит всего-лишь добавить модуль к вашему приложению. Конечно, новый класс не должен иметь одиноко выглядящую процедуру со странной технологией фильтрации данных :=))), да и не помешала бы публикация нескольких событий, но этот пример призван все-го лишь продемонстрировать иной подход к решаемой задаче.


unit Unit2;

interface
uses db, DBTables, dialogs;

type
  fake = class(Ttable)
    procedure fakeFilterRecord(DataSet: TDataSet; var Accept: Boolean);
  end;

var
  MyTable: fake;

implementation

procedure fake.fakeFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  showmessage('Здравствуй, Вася');
end;

initialization

  MyTable := fake.create(nil);
  with Mytable do
  begin
    DataBaseName := 'dbdemos';
    TableName := 'biolife';
    OnFilterRecord := MyTable.fakeFilterRecord;
    Filtered := true;
    active := true;
  end;

  {проверка получением неких данных...}
  showmessage(MyTable.fields[1].asstring);

finalization
  {Важно!  MyTable не имеет родителя, - уничтожаем объект сами,
  иначе память не высвобождается...}
  MyTable.free;

end.


Copyright ©   "DELPHI WORLD"   E-mail:   delphiworld@mail.ru  http://www.delphiworld.narod.ru
Источник получения информации: http://www.delphiworld.narod.ru
Hosted by uCoz