Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Визуальный объект 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 на панели создавать????


Наверх

Титульная страница Поиск, карта сайта Написать письмо