Главная страница
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.012 c
1-1252242428
Ruzzz
2009-09-06 17:07
2011.04.17
Сериализация, хочу найти лучшее решения


2-1295026576
Тоха
2011-01-14 20:36
2011.04.17
Трудности с WMI (инфо о процессах)


8-1211723746
S@7
2008-05-25 17:55
2011.04.17
циклично проигрывать музыку


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


3-1254856164
noname123
2009-10-06 23:09
2011.04.17
Interbase и BDE что нужно еще?