Наследникам TDataSet посвящается
© 2003 Андрей Евлаш
Перед заключительной сборкой проекта, желательно закрывать ненужные DataSet'ы, находящиеся на автосоздаваемых формах (и не только), чтобы:
- не обращаться лишний раз серверу базы данных;
- не расходовать память;
- программа быстрее запускалась;
- ну и с эстетической точки зрения.
Идея заключается в том, чтобы завести дополнительное свойство, в котором будем определять - когда открывать DataSet. Назовём его ActiveMode.
Для примера, создадим наследника от компонента TIBDataSet.
type
TActiveMode =
( amDesigning { свойство Active в дизайнтайме всегда True }
, amAlways { свойство Active всегда True }
, amCustom { разработчик сам управляет свойством Active }
);
TmyIBDataSet = class(TIBDataSet)
private
FActiveMode: TActiveMode;
function IsActiveStored: Boolean;
procedure SetActiveMode(Value: TActiveMode);
published
property Active stored IsActiveStored;
property ActiveMode: TActiveMode read FActiveMode write SetActiveMode default amDesigning;
end;
implementation
function TmyIBDataSet.IsActiveStored: Boolean;
begin
Result := (ActiveMode = amCustom);
end;
procedure TmyIBDataSet.SetActiveMode(Value: TActiveMode);
begin
if (FActiveMode <> Value) then
begin
FActiveMode := Value;
case ActiveMode of
amAlways: Open;
amDesigning:
if (csDesigning in ComponentState) then
Open;
end;
end;
end;
PS Вышесказанное можно применить и к наследникам TCustomConnection.
Copyright© 2003 Андрей Евлаш Специально для Delphi Plus
| 2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2002 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2001 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2000 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1999 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
Последние статьи
- Компания по разработке программного обеспечения
- Услуги аутсорсинга в области программирования
- Как продлить срок службы картриджей
- Мошенничество во Всемирной Паутине. Осторожно: фишинг!
- Web-студия
- Как легально поднять уровень индекса цитирования.
- Мы реально сможем помочь вам в управлении предприятием
- Создание сайтов – популяризация вашего замысла
- Свой сайт. Управление ресурсом
- Семантическое ядро сайта или правила подбора ключевых фраз
Литература
- Программирование в среде Delphi 8 for .NET
- Практикум по Delphi для решения прикладных задач
- Фундаментальные алгоритмы и структуры данных в Delphi
- Delphi 6. Программирование на Object Pascal
- Delphi и технология COM
- Delphi в шутку и всерьез: что умеют хакеры
- Программирование в Delphi глазами хакера
- Delphi 2005. Секреты программирования
- Искусство создания компонентов Delphi
- Приемы программирования в Delphi на основе VCL
- Программирование баз данных в Delphi 7
- Программирование баз данных в Delphi
- Программирование в среде Delphi
- Программирование в Delphi 7
- Язык SQL в Delphi 5