![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Визуальный объект 2 в одном.
VadimX © (2005-06-06 18:42:00)Нужно в объекте на панели создать динамически DBGrid.
делаю так:
unit uezdbgrid;
interface
uses extctrls,classes,dbgrids,grids,Controls;
type
TEzDBGrid = class(TCustomPanel)
FDBGrid : TDBGrid;
procedure Show;
private
Constructor Create(Owner :TComponent); override;
Destructor Destroy;
public
end;
implementation
constructor TEzDBGrid.Create(Owner: TComponent);
begin
inherited Create(Owner);
FDBGrid := TDBGrid.Create(Self);
FDBGrid.Align := alClient;
FDBGrid.Parent := Self;
FDBGrid.Visible := true;
end;
destructor TEzDBGrid.Destroy;
begin
FDBGrid.Free;
inherited;
end;
procedure TEzDBGrid.Show;
begin
inherited Show;
FDBGrid.Show;
end;
end.
Панель видно DBGrid на ней нет.
Что не так?
Юрий Зотов (2005-06-07 16:47:00) [1]Дополнение - тем не менее, сказанное в [2] остается в силе. Если не исправите - как минимум, обеспечена утечка памяти.
Юрий Зотов (2005-06-07 16:45:00) [2]Да, не обратил внимания.
VadimX (2005-06-06 19:56:00) [3]ошибка здесь
private
Constructor Create(Owner :TComponent); override;
Destructor Destroy;
public
должно быть
private
public
Constructor Create(Owner :TComponent); override;
Destructor Destroy;
все работает.
Юрий Зотов (2005-06-06 19:44:00) [4]В коде все нормально, кроме:
- параметр конструктора назван неверно;
- деструктор не перекрыт, а замещен;
- процедура Show не нужна;
- оператор FDBGrid.Visible := true тоже не нужен.
Компилятор должен давать замечания - приведите их.
VadimX (2005-06-06 19:28:00) [5]Может нельзя DBGrid на панели создавать????