Re: классы: конструктор и деструктор
От: Slicer [Mirkwood] Россия https://ru.linkedin.com/in/maksim-gumerov-039a701b
Дата: 29.11.03 15:31
Оценка:
6>У меня есть панель на ней з edit'a и button.
6>Хочу эту штуку отдельным классом сделать
6>Помогите сделать конструктор и деструктор ко всей єтой фигне... плз..

constructor Texample.Create(AOwner:TComponent);
begin
  inherited;

  Button1:=TButton.Create(self); //Владелец - наша панель
  with Button1 do
  begin
    Parent:=self;
    BoundsRect:=Rect(...); //координаты контрола и его размер
    Caption:='MyButton';
    //Еще не мешало бы Name установить, но я не в курсе, как сгенерировать уникальное имя
    //Впрочем, это, как правило, не нужно, если не используется поиск компонента по имени
    //или сохранение объекта в поток
  end;

  //Такая же ерунда для edit'ов
end;

Деструктор можно не переписывать: так как наша панель — владелец этих контролов, то они автоматически уничтожаются при уничтожении панели.

6>и вообще верно то , что я предком указал Tpanel ?

Ну, это зависит от того, как тебе удобнее ее использовать. Если везде, где может использоваться панель, то тогда наследуйся от панели. Если же нужно, чтобы объекты этого нового класса можно было использовать везде, где используется некий твой собственный класс TMyObject, который от панели не отнеследован, то рекомендую создать для TExample И TMyObject общего предка (т.е. чтобы оба наследовались от него), а в TExample тогда придется еще и саму панель, на которой кнопки лежат, внести. Или вместо общего предка можно в обоих классах реализовать один и тот же общий interface (пусть даже при этом TExample все еще наследуется от TPanel), а общую обработку для TExample и TMyData организовывать через этот inteface (например, array [1..10] of IMyCommonInterface).

Slicer
Специалист — это варвар, невежество которого не всесторонне :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.