Delphi World - Создание компонента TTable без формы 4
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Создание компонента 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.

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования