|
|
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
Я создал глобальный массив картинок: Код: pascal 1. Если надо создать картинку - пробегаю массив в поисках свободного места и создаю там: Код: pascal 1. 2. 3. 4. 5. 6. 7. Если мне надо удалить, делаю просто: Код: pascal 1. Но наверно я делаю что-то не так при удалении, так как удаляемый элемент не становится после удаления равным nil. Если посмотреть в отладчике, то в массиве после .Free элемент по прежнему имеет указатель. Ну скажем: Код: pascal 1. Значит для правильного удаления надо сделать: Код: pascal 1. 2. или можно это как-то сделать одной строкой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 17:45:11 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
Free не обнуляет саму ссылку на бывший объект. Одной строкой можно: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 17:51:31 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
Спасибо! Действительно теперь всё работает... А как можно проверить ссылка на существующий объект или на удалённый? В других языках есть взякие isNull(), is_assigned() чтобы проверить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 18:11:20 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
if Assigned(XXX) then ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 18:13:19 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
InterSkyА как можно проверить ссылка на существующий объект или на удалённый? Никак. Ссылка на удаленный объект ничем не отличается от ссылки на неудаленный. Уже посоветовали FreeAndNil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 18:16:45 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
InterSky, судя по тому, как ты создаешь объекты, тебе проверки не очень помогут) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 18:56:13 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
Vizit0rif Assigned(XXX) then Хм... Я нажал Ctrl+Пробел начал писать Assi... и мне показало что есть только такая процедура, по этому даже не стал проверять... Но если нажать F1 на уже написанном Assigned - тогда действительно показывает описание функции... Но она в действительности проверяет только на nil, и после простого m[1].Free продолжает сообщать что элемент объявлен. Всем спасибо, сделал через FreeAndNil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 19:06:09 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
InterSkyVizit0rif Assigned(XXX) then Хм... Я нажал Ctrl+Пробел начал писать Assi... и мне показало что есть только такая процедура, по этому даже не стал проверять... Но если нажать F1 на уже написанном Assigned - тогда действительно показывает описание функции... Но она в действительности проверяет только на nil, и после простого m[1].Free продолжает сообщать что элемент объявлен. Всем спасибо, сделал через FreeAndNil ну ты спрашивал за синтаксис - я и написал. Так-то оно да, для просто освобожденных объектов не сработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 19:07:35 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
fd00chInterSky, судя по тому, как ты создаешь объекты, тебе проверки не очень помогут) InterSky, Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 20:14:37 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
InterSky, Не по Фен-Шую. Открой для себя TList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 23:08:48 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
almswissОткрой для себя TList. а там и до дженериков рукой подать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 00:01:17 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
m: TArrayEx<TImage>; ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 01:30:05 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
"Неправильно". :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 03:06:35 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
almswiss, тогдауш TObjectList. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 04:25:45 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
TObjectList<TMyClass> )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 10:21:03 |
|
||
|
Не правильно освобождаю переменную?
|
|||
|---|---|---|---|
|
#18+
Скажите, а у вас реально такой код? InterSky Код: pascal 1. 2. 3. 4. 5. 6. 7. или на самом деле там Код: pascal 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 10:38:30 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39479289&tid=2042086]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 339ms |

| 0 / 0 |
