Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автоматическое создание вложенных класов
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Система
slavon-x86
  TFLoad = class
    Folder, Name: string;
    Content: TMemoryStream;
    Load: integer;
  end;

var
  FLoad: TFLoad;


Как сделать чтобы при создании классы FLoad := TFLoad.Create автоматически создавался вложенный класс TFLoad.Content.Create ? И при разрушении FLoad.Free автоматически разрушался TFLoad.Content.Free ?
sax_ol
Про конструкторы и деструкторы что-нибудь слышали?
slavon-x86
Слышал, но я не знаю как правильно его использовать ! Как ни пытался - неполучается !
slavon-x86
Поможете примером ?
sax_ol
constructor + F1
destructor + F1
там и информация и примеры есть, и как раз то, что надо.
slavon-x86
Я не настолько разбираюсь в английском чтобы понять !
Я нашёл через наследование ! Но что делать если таких (Content: TMemoryStream;) переменных несколько ?
Обычно я пользуюсть поисковиками, но этого примера найти не смог !
sax_ol
Цитата(slavon-x86 @ 18:07:2008 - 19:27) *
Я не настолько разбираюсь в английском чтобы понять !
А кому сейчас хорошо?
Цитата(slavon-x86 @ 18:07:2008 - 19:27) *
Я нашёл через наследование ! Но что делать если таких (Content: TMemoryStream;) переменных несколько ?
Не совсем понял что значит "через наследование". А то что касается - "переменных несколько" - то а как вы хотели, чтоб они создавались по "щучьему велению"? нет никакой полтергейст вам не поможет, если объект надо создать. значит его надо создать.
slavon-x86
Млин... ну неужели так сложно код написать ?
Если бы я знал как это сделать или мог сам разобраться, то меня бы здесь небыло !
В книге есть описание конструкторов и деструкторов, но изложенной там информации мне не хватает для решения проблемы !
sax_ol
Цитата(slavon-x86 @ 19:07:2008 - 14:51) *
Млин... ну неужели так сложно код написать ?
Млин ... ну неужели так трудно нажать на F1? там сразу пример есть как всю эту кухню сделать.
type
TShape = class(TGraphicControl)
private
    FPen: TPen;
    ...
public
    constructor Create(Owner: TComponent); override;
    destructor Destroy; override;
    ...
end;

constructor TShape.Create(Owner: TComponent);
begin
  inherited Create(Owner);  // Initialize inherited parts

    ...
  FPen := TPen.Create;  // Initialize new fields
    ...
end;

destructor TShape.Destroy;
begin
    ...
  FPen.Free;
  inherited Destroy;
end;
Это из хелпа пример, что тут непонятно?
slavon-x86
Этот код я видел, но я не могу понять его!

Я пытался делать, но всегда куча ошибок и вот одна из них:
  TFLoad = class
    Path: string;
    Load: integer;
    Data: TMemoryStream;
  public
    constructor Create; override;
    destructor Destroy; override;
  end;



[Error] Loading.pas(19): E2170 Cannot override a non-virtual method
sax_ol
Цитата(slavon-x86 @ 19:07:2008 - 20:03) *
Этот код я видел, но я не могу понять его!
А понятно, вам надо сначало подучиться. Т.к. это всеголишь азы ООП. а раз вы их не понимаете то сами понимаете ... работать с объектами пока рано.
slavon-x86
Цитата
А понятно, вам надо сначало подучиться.

Собственно это я и пытаюсь сделать !
Я наверное просто не правильно понимаю написанное в книге, вот поэтому и прошу написать пример !
sax_ol
Цитата(slavon-x86 @ 13:08:2008 - 12:57) *
Я наверное просто не правильно понимаю
А ктож его знает? может правильно а может и нет. Вот чего вы неправильно понимаете так это то, что тут помогают разобраться с проблемами, а не обучают языку. Т.к. это довольно долгое и весьма не дешевое занятие.
Вам же надо изначально изучить основы ООП, что такое тип, класс, объект, наследование, полиморфизм, инкапсуляция, абстрактные и виртуальные методы и т.д и т.п. Это все не сложно, но без этого ни куда, это фундамент, а без фундамента. как понимаете, ничего не будет.


Цитата(slavon-x86 @ 13:08:2008 - 12:57) *
прошу написать пример
А толку? пример будет в точ в точ как уже тут я приводил, ... а с чего им отличаться ? но вы его не понимаете и следовательно, с чего вдруг другой поймете?
slavon-x86
Цитата(sax_ol @ 13:08:2008, 14:51 ) *
Вам же надо изначально изучить основы ООП, что такое тип, класс, объект, наследование, полиморфизм, инкапсуляция, абстрактные и виртуальные методы и т.д и т.п. Это все не сложно, но без этого ни куда, это фундамент, а без фундамента. как понимаете, ничего не будет.


А ссылочку на учебник\статью дадите ?
astronom
Цитата(slavon-x86 @ 13:08:2008, 19:25 ) *
А ссылочку на учебник\статью дадите ?

]]>http://ru.wikipedia.org/wiki/Объектно-орие...рограммирование]]>
]]>http://books.dore.ru/bs/f6sid278.html]]>
ph34r.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.