Форум: "Начинающим";
Текущий архив: 2011.04.17;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c