-
- Всём спасибо за обсуждение. Очень помогли. - POV(20.04.2011 14:09)
- И каков итог? Vallav(274 знак., 20.04.2011 18:12)
- Если обязательно освобождалась, то вообще бы ничего не работало - new вне процедуры не поставишь. - POV(20.04.2011 19:37)
- Конечно же обязательно не освобождается. А вот по второму пункту -- да запросто. ReAl(1220 знак., 21.04.2011 01:19 - 01:24)
- Если обязательно освобождалась, то вообще бы ничего не работало - new вне процедуры не поставишь. - POV(20.04.2011 19:37)
- И каков итог? Vallav(274 знак., 20.04.2011 18:12)
- Первый вариант должен работать. Только при обращении к функции надо &Value давать. - Михаил Е.(20.04.2011 13:40)
- Теперь уже это ясно. Получится вариант с двойным указателем AlexD. - POV(20.04.2011 14:10)
- можно так =AlexD=(196 знак., 20.04.2011 12:31)
- Остановился на втором варианте. В сама деле самый логичный и надежный.. хотя не факт что самый быстрый - приходится создавать локальную картинку вместо изменения прежней. - POV(20.04.2011 13:00)
- что значит "вместо изменения"? Если ты грузишь другую картинку, она ведь скорее всего другого размера? Значит, без перераспределения памяти не обойтись koyodza(204 знак., 20.04.2011 13:36)
- Так её размер меняется внутри процедуры. Перераспределение есть ессно. - POV(20.04.2011 13:59)
- что значит "вместо изменения"? Если ты грузишь другую картинку, она ведь скорее всего другого размера? Значит, без перераспределения памяти не обойтись koyodza(204 знак., 20.04.2011 13:36)
- Остановился на втором варианте. В сама деле самый логичный и надежный.. хотя не факт что самый быстрый - приходится создавать локальную картинку вместо изменения прежней. - POV(20.04.2011 13:00)
- function (TClass **Value){ Value = new TClass();}=) - DIY(20.04.2011 12:08,
)
- Компилятор это пропускает, но оно не работает. Это ж адрес хранения адреса объекта. - POV(20.04.2011 12:16)
- Хотя.. внимательно посчитал все звёздочки. Вроде как заработало. - POV(20.04.2011 12:19)
- теперь про delete не забудь - koyodza(20.04.2011 12:20)
- Там проще можно. Если объект внутри функции определен, при выходе из функции неявный деструктор сработает. Короче, если выйти из области видимости объекта, он уничтожится. - Михаил Е.(20.04.2011 13:45)
- ему как раз нужно, чтобы не уничтожался - koyodza(20.04.2011 13:45)
- Эээ, поясни. - POV(20.04.2011 12:23)
- освобождать память кто будет? koyodza(139 знак., 20.04.2011 12:29)
- В каком именно месте delete? - POV(20.04.2011 12:34)
- в том, где объект уже больше не нужен koyodza(93 знак., 20.04.2011 12:35)
- Хы, вот как раз перед созданием косяк-то и есть :(( POV(150 знак., 20.04.2011 12:59)
- нельзя так делать koyodza(475 знак., 20.04.2011 13:29 - 13:31)
- Не, инициализацию NULL'ом делаю. Не помогает. Плохо что речь идёт о компоненте, а не просто проге - пошагово отлаживать не возможно. - POV(20.04.2011 14:03)
- видать, где-то не там где надо делаешь - koyodza(20.04.2011 14:07)
- Вопчем сделал так... POV(84 знак., 20.04.2011 14:08)
- нет смысла присваивать NULL после delete, если в следующей строке идёт new koyodza(474 знак., 20.04.2011 14:17 - 14:31)
- new не в следующей строчке. Далее проверка на NULL объекта и если не создан, то создается. Это динамическая подмена скина компонента - чтобы приложение быстрее запускалось за счёт подготовки картинок по мере появления в этом надобности. - POV(20.04.2011 15:36)
- И нет смысла проверять на NULL перед delete. delete по стандарту обязан кушать NULL (if the value of the operand of delete is the null pointer the operation has no effect). - Cepгeй Бopщ(20.04.2011 14:24)
- Это я уже на воду дую :) - POV(20.04.2011 15:41)
- кстати да - koyodza(20.04.2011 14:32)
- нет смысла присваивать NULL после delete, если в следующей строке идёт new koyodza(474 знак., 20.04.2011 14:17 - 14:31)
- Вопчем сделал так... POV(84 знак., 20.04.2011 14:08)
- видать, где-то не там где надо делаешь - koyodza(20.04.2011 14:07)
- Не, инициализацию NULL'ом делаю. Не помогает. Плохо что речь идёт о компоненте, а не просто проге - пошагово отлаживать не возможно. - POV(20.04.2011 14:03)
- Не зря чешется. Запусти код создания объектов в цикле и посмотри как память утекает. - =AlexD=(20.04.2011 13:28)
- нельзя так делать koyodza(475 знак., 20.04.2011 13:29 - 13:31)
- Хы, вот как раз перед созданием косяк-то и есть :(( POV(150 знак., 20.04.2011 12:59)
- в том, где объект уже больше не нужен koyodza(93 знак., 20.04.2011 12:35)
- В каком именно месте delete? - POV(20.04.2011 12:34)
- освобождать память кто будет? koyodza(139 знак., 20.04.2011 12:29)
- Там проще можно. Если объект внутри функции определен, при выходе из функции неявный деструктор сработает. Короче, если выйти из области видимости объекта, он уничтожится. - Михаил Е.(20.04.2011 13:45)
- теперь про delete не забудь - koyodza(20.04.2011 12:20)
- Хотя.. внимательно посчитал все звёздочки. Вроде как заработало. - POV(20.04.2011 12:19)
- упсfunction (TClass **Value){ *Value = new TClass();} - DIY(20.04.2011 12:12,
)
- сорри, что-то тэги форматирования у меня не работают - DIY(20.04.2011 12:15,
)
- сорри, что-то тэги форматирования у меня не работают - DIY(20.04.2011 12:15,
- Компилятор это пропускает, но оно не работает. Это ж адрес хранения адреса объекта. - POV(20.04.2011 12:16)
- дык это же цже будет передача по ссылке. Или нет ? - MegaJohn(20.04.2011 12:07)
- Я умных слов таких не знаю :( Мне просто надо передать указатель на картинку в процедуру - и там с картинкой всякое вытворять. Но сделать её негде оказывается. Из-за new, т.е. создания в куче я теряю картинку при выходе из любой процедуры. - POV(20.04.2011 12:11)
- Для досуга можно ознакомиться с ссылками [>] - MegaJohn(20.04.2011 14:28)
- Я умных слов таких не знаю :( Мне просто надо передать указатель на картинку в процедуру - и там с картинкой всякое вытворять. Но сделать её негде оказывается. Из-за new, т.е. создания в куче я теряю картинку при выходе из любой процедуры. - POV(20.04.2011 12:11)
- Вот "delete &imField" компилятор пропускает. А если так для new писать, то "Lvalue requred" - POV(20.04.2011 12:06)
- Цель не понятна. В первом варианте передается указатель, который зачем-то потом переназначается. А во втором передается как бы сам объект, только хитрым способом. AlexBi(94 знак., 20.04.2011 12:06)
- Всём спасибо за обсуждение. Очень помогли. - POV(20.04.2011 14:09)