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

Вниз

В разделе initialization не видны объявленные переменные   Найти похожие ветки 

 
TopGun   (2002-09-18 20:13) [0]

Вот в общем то и вся проблема. Хочу глобально выделить для Pchar"а память, а потом в finalization освободить (ну надо мне так). А вот в этом разделе компилятор пишет, что такое мол "P" (P:pchar).


 
Separator ©   (2002-09-18 20:48) [1]

А ты где объявлял переменную?


 
Kibitzer   (2002-09-18 20:56) [2]

???
Как это не видны???
А где ты их объявляешь?


 
TopGun   (2002-09-18 22:20) [3]

в разделе приват (публик) TForm1 = class(TForm)


 
Юрий Зотов ©   (2002-09-18 22:29) [4]

А... понятно. Ну что ж, флаг в руки...

Несколько наводящих вопросов, с Вашего разрешения:

Как можно в initialization выделить память для поля объекта, если сам этот объект еще не создан? И как быть, если создано несколько таких объектов? И что произойдет при освобождении памяти в finalization, если объект уже был уничтожен?

Эти секции используются с глобальными переменными, а не с полями объектов. Либо с полями глобальных объектов, но тогда надо тут же эти объекты и создавать, и уничтожать.


 
TopGun   (2002-09-18 23:49) [5]

Я так и думал. А где надо объявлять глобальные переменные ?


 
Юрий Зотов ©   (2002-09-19 00:29) [6]

В модуле, где ж еще.
...
interface
...
var
S: string; // Видна и снаружи, и внутри (ниже этой строки)
...
implementation
...
var
P: PChar; // Видна только внутри (ниже этой строки)
...
initialization
S := "Hello, world!";
GetMem(P, 512);
finalization
FreeMem(P, 512);
end.


 
Separator ©   (2002-09-19 07:52) [7]

можно еще объявля в public например Form1: TForm1, но тогда в другом модуле надо писать Form1.XX


 
Страж порядка   (2002-09-19 10:30) [8]

> Separator © (19.09.02 07:52)

Вопрос читал?


 
Separator ©   (2002-09-19 10:36) [9]

>Страж порядка
В обще пока дочитал до конца, забыл уже и сам вопрос



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

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

Наверх




Память: 0.48 MB
Время: 0.022 c
1-98057
Skywalker
2002-09-19 12:03
2002.09.30
initialization; finalization


1-98040
NeyroSpace
2002-09-17 14:33
2002.09.30
Нужно узнать сколько файлов в каталоге, а потом поочереди открыть


14-98304
BigBadMutuh
2002-09-03 00:39
2002.09.30
МИРЭА


6-98256
Delphi5.01
2002-07-28 21:37
2002.09.30
Kak programno ustanovit prava dostupa k katalogu na vinte dla ...


14-98263
MJH
2002-09-02 19:00
2002.09.30
тест плз: у всех ли скачивается с http://nitroamp.ru