Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.17;
Скачать: CL | DM;

Вниз

initialization и finalization в модуле   Найти похожие ветки 

 
RUu   (2011-01-17 11:56) [0]

Попытался сделать зачистку на уровне модуля.
initialization
mylist:=TStringList.Create;
finalization
mylist.Free;

Компилятор ругается на mylist, типа не задекларирован. Где еще его надо декларировать? Он и так уже в public.


 
Ega23 ©   (2011-01-17 12:12) [1]


> Он и так уже в public.

В public чего?


 
Palladin ©   (2011-01-17 12:19) [2]

класса конечно... )


> RUu   (17.01.11 11:56) 

а если объектов класса не существует, то где же mylist создастся?
а если я создам несколько объектов твоего класса, в каком именное mylist.free вызовется?


 
RUu   (2011-01-17 12:22) [3]


> В public чего?

этого модуля


> а если объектов класса не существует, то где же mylist создастся?

а как сделать чтоб существовали?


 
Palladin ©   (2011-01-17 12:26) [4]

unit vzryv_mozga_dla_neuchey;
interface
type
 TClass1 = class
 public
   mylist: TStringList;
 end;

 TClass2 = class
 public
   mylist: TStringList;
 end;

implementation
end.


какой из вышеприведенных секций public, public модуля?


 
Palladin ©   (2011-01-17 12:27) [5]


> а как сделать чтоб существовали?

создать их


 
RUu   (2011-01-17 12:31) [6]

У меня 1
class в модуле только.


 
Palladin ©   (2011-01-17 12:32) [7]

и что?


 
RUu   (2011-01-17 12:32) [8]

где создать? там же, в initialization?


 
Ega23 ©   (2011-01-17 12:33) [9]


> где создать? там же, в initialization?

например
Или объявить лист как самостоятельную переменную.


 
Dzmitry.Loktseu ©   (2011-01-17 12:36) [10]

А нафига тебе создавать и удалять список в initialization / finalization, если он в рамках класса? Создавай в конструкторе, удаляй в деструкторе класса в котором он объявлен.


 
RUu   (2011-01-17 12:40) [11]


> unit vzryv_mozga_dla_neuchey;
> interface
> type
>  TClass1 = class
>  public
>    mylist: TStringList;
>  end;
>
>  TClass2 = class
>  public
>    mylist: TStringList;
>  end;
>
> implementation
> end.
>
> какой из вышеприведенных секций public, public модуля?

Чем они принципиально отличаются? В верхней.


 
Palladin ©   (2011-01-17 12:46) [12]

http://www.google.ru/search?client=opera&rls=ru&q=%D0%BE%D0%BE%D0%BF+%D0%B4%D0%BB%D1%8F+%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

покупай, изучай
недалеких в нашей отрасли более чем достаточно


 
RUu   (2011-01-17 12:50) [13]

В смысле "недалеких"? Я читал книги, но там по этой теме только общие слова, ни строчки кода.


 
Плохиш ©   (2011-01-17 12:51) [14]


> Компилятор ругается на mylist, типа не задекларирован.

Ты компиляторы верь.


 
Плохиш ©   (2011-01-17 12:53) [15]


>  Я читал книги, но там по этой теме только общие слова

По какой теме?

PS. Описание языка начинаетсяс того, что все переменные перед использованием должны быть описаны.


 
Ega23 ©   (2011-01-17 13:04) [16]


> Чем они принципиально отличаются?


Тем, что в твоём случае это поле класса, описанного в секции type
Создавай свой класс, в конструкторе создавай поле, в деструкторе - убивай.
Либо заведи секцию переменных var и объявляй свой лист там.

unit Unit10;

interface

uses Classes;

var
 mylist: TStringList;

implementation

initialization

 mylist:=TStringList.Create;

finalization
 
 mylist.Free;


 
Andy BitOff ©   (2011-01-17 13:41) [17]

Олег все испортил, не дал поглумиться =))


 
Anatoly Podgoretsky ©   (2011-01-17 13:43) [18]


> RUu   (17.01.11 12:32) [8]

Нигде, тебе еще рано работать с initialization


 
Ega23 ©   (2011-01-17 13:45) [19]


> Олег все испортил, не дал поглумиться =))


Да ладно, все когда-то начинали.
"И чушь прекрасную несли" (с)


 
DiamondShark ©   (2011-01-17 13:51) [20]


> Ega23 ©   (17.01.11 13:45) [19]
> Да ладно, все когда-то начинали.

Ты когда-то путал поле класса и переменную модуля? Охотно верю.
Но "Отучаемся говорить за всю сеть" (ц)


 
Ega23 ©   (2011-01-17 13:57) [21]


> Но "Отучаемся говорить за всю сеть" (ц)


Прости, Великий Гуру (бьюсь головой в пол)
Охотно верю, что первыми твоими словами были "Hello world". На COBOL. И уж ты-то никогда в жизни не путал поле класса и переменную модуля.


 
DiamondShark ©   (2011-01-17 14:20) [22]


> Ega23 ©   (17.01.11 13:57) [21]

Молодец. Для первого раза достаточно.
Теперь иди, и не появляйся, пока Я не призову тебя.
Для смирения плоти напишешь 50 раз "Hello world". На COBOL. И не вздумай использовать циклы.



Страницы: 1 вся ветка

Текущий архив: 2011.04.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
15-1293452863
Ega23
2010-12-27 15:27
2011.04.17
Наткнулся на интересное поведение в D2010


1-1251790955
Fr0sT
2009-09-01 11:42
2011.04.17
FastCode и D2009


15-1294386557
vaz_mz
2011-01-07 10:49
2011.04.17
печать в виндовс ХП


2-1295254611
RUu
2011-01-17 11:56
2011.04.17
initialization и finalization в модуле


15-1294148572
alexdn_
2011-01-04 16:42
2011.04.17
c++