Главная страница
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.009 c
15-1317501002
Юрий
2011-10-02 00:30
2012.01.15
С днем рождения ! 2 октября 2011 воскресенье


3-1269803253
Andrey2025
2010-03-28 23:07
2012.01.15
Вопрос по Firebird/ interbase Express


9-1188822716
ПисательПлоскихИгр
2007-09-03 16:31
2012.01.15
Zero3D


15-1316281812
Pit
2011-09-17 21:50
2012.01.15
Сохранение обновлений с Windows Update


15-1316555083
Джо
2011-09-21 01:44
2012.01.15
Сша, психоделик, 60-е.