Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.003 c
15-1316896202
Юрий
2011-09-25 00:30
2012.01.15
С днем рождения ! 25 сентября 2011 воскресенье


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


15-1317069002
Юрий
2011-09-27 00:30
2012.01.15
С днем рождения ! 27 сентября 2011 вторник


2-1317972414
ЕД
2011-10-07 11:26
2012.01.15
TcxDBLookUpComboBox в TcxDBVerticalGrid


6-1249385626
Polkin
2009-08-04 15:33
2012.01.15
проблема с ISA-прокси





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский