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

Вниз

Копирование указателей   Найти похожие ветки 

 
Alex_C   (2011-10-05 16:37) [0]

В упрощенном виде есть record

type
 TFigure = record
   X: integer;
   Y: integer;
   B: TBitMap;


есть объекты

var
  A, B: TFigure;


Вопрос: как правильно скопировать A в B? Поясню вопрос: как правильно копировать-удалять указатель на TBitmap?


 
Rouse_ ©   (2011-10-05 16:39) [1]

A := B;


 
картман ©   (2011-10-05 17:05) [2]

нверное Assign он хотел


 
Rouse_ ©   (2011-10-05 17:17) [3]

В данном случае это монопенисюально...


 
картман ©   (2011-10-05 17:25) [4]


> монопенисюально..

почти


 
Alex_C   (2011-10-05 18:03) [5]

Нет ребят. Ни A := B; ни Assign выдают ошибку... Не есть это правильно..


 
Плохиш ©   (2011-10-05 18:05) [6]

Так помедитируй над ошибкой и книжку-какую почитай.


 
Rouse_ ©   (2011-10-05 18:49) [7]


> Alex_C   (05.10.11 18:03) [5]
>
> Нет ребят. Ни A := B; ни Assign выдают ошибку...

Похоже что ошибка в 17-ой строке


 
Dennis I. Komarov ©   (2011-10-05 19:30) [8]


> Похоже что ошибка в 17-ой строке

Да он столько не написал :)


 
Сергей М. ©   (2011-10-05 21:44) [9]


> Ни A := B; ни Assign выдают ошибку


[proga.exe] Fatal error: monopenisual


 
Cobalt ©   (2011-10-05 22:39) [10]

> Rouse_ ©   (05.10.11 16:39) [1]
>
> A := B;


Вот правильно тебе не дают голубые штаны!

1) B: TBitMap;

2)  A: TFigure;


 
Dennis I. Komarov ©   (2011-10-05 23:32) [11]


> Cobalt ©   (05.10.11 22:39) [10]

Ничего подобного...
B.B: TBitMap;
A,B: TFigure;


 
Rouse_ ©   (2011-10-05 23:39) [12]


> Cobalt ©   (05.10.11 22:39) [10]
> Вот правильно тебе не дают голубые штаны!
>
> 1) B: TBitMap;
>
> 2)  A: TFigure;

Сурово...


 
Германн ©   (2011-10-06 01:01) [13]


> Cobalt ©   (05.10.11 22:39) [10]
>
> > Rouse_ ©   (05.10.11 16:39) [1]
> >
> > A := B;
>
> Вот правильно тебе не дают голубые штаны!
>
> 1) B: TBitMap;
>
> 2)  A: TFigure;
>

Имхо, противоречит условию задачи:

> var
>   A, B: TFigure;
>
>


 
Cobalt ©   (2011-10-06 09:56) [14]

Эх вы, а еще россияне...
Неужто нужно ставить смайлики?


 
Alex_C   (2011-10-06 11:33) [15]

Как обычно спасибо за большое количество бестолковых высказываний.
Перед тем как советовать надо хоть попытаться понять суть вопроса.
А суть в объекте Bitmap. Если просто делать A := B, то объект Bitmap у A получается "зависнет" в памяти, ведь мы ж его не Free, правильно я понимаю. Следовательно перед A := B необходимо сделать

if assigned(A.B) then
 FreeAndNil(A.B);

Прошу прощения машинально обозвал и объект Bitmapa той же буквой, что и объект TFigure. Тут вроде как все понятно. Но! Если объект класса TFigure - локальная переменная, то при использовании указатель на битмап не инициализируется как nil, в результате указанный выше код даст ошибку при попытке удаления несуществующего объекта.
Получается есть только один выход: перед использованием локальной переменной типа TFigure указатель на битмап принудительно приравнивать к nil.
Правильно ли я понимаю, что по другому никак?


 
Palladin ©   (2011-10-06 11:39) [16]


> Как обычно спасибо за большое количество бестолковых высказываний.
> Перед тем как советовать надо хоть попытаться понять суть
> вопроса.

ты не охренел-ли, парниша?



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

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

Наверх




Память: 0.5 MB
Время: 0.006 c
1-1279183953
TKN
2010-07-15 12:52
2012.01.15
QuickReport - вывести в файл


15-1316494673
xayam
2011-09-20 08:57
2012.01.15
АНТИВИРУСЫ НА ВОЙНЕ


15-1317136214
Kerk
2011-09-27 19:10
2012.01.15
Сворачивание регионов в редакторе кода


2-1317904913
Alex_C
2011-10-06 16:41
2012.01.15
Узнать, нажата ли кнопка на мыши


6-1218309025
Doc.X
2008-08-09 23:10
2012.01.15
Регестарция в WordPress