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

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

initialization и finalization в модуле


Страницы:   1 2

RUu ©   (2011-01-17 11:56:00) 

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

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


DiamondShark   (2011-01-17 14:20:00) [1]


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

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


Ega23   (2011-01-17 13:57:00) [2]


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


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


DiamondShark   (2011-01-17 13:51:00) [3]


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

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


Ega23   (2011-01-17 13:45:00) [4]


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


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


Anatoly Podgoretsky   (2011-01-17 13:43:00) [5]


> RUu   (17.01.11 12:32) [8]

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


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

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


Ega23   (2011-01-17 13:04:00) [7]


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


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

unit Unit10;

interface

uses Classes;

var
 mylist: TStringList;

implementation

initialization

 mylist:=TStringList.Create;

finalization
 
 mylist.Free;


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


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

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

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


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


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

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


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

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


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

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:40:00) [12]


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

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


Dzmitry.Loktseu   (2011-01-17 12:36:00) [13]

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


Ega23   (2011-01-17 12:33:00) [14]


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

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


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

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


Palladin   (2011-01-17 12:32:00) [16]

и что?


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

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


Palladin   (2011-01-17 12:27:00) [18]


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

создать их


Palladin   (2011-01-17 12:26:00) [19]

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

 TClass2 = class
 public
   mylist: TStringList;
 end;

implementation
end.


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


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


> В public чего?

этого модуля


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

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


Страницы:   1 2

Наверх

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