|
|
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
Ситуация: в созданном мной наследнике потока TThread есть public свойство Tlabel *MyLabel (указатель на метку). При инициализации потока на главной форме динамически создается эта самая метка MyLabel: MyLabel=new TLabel(Form1); MyLabel->Parent=Form1; //теперь метка появилась на форме когда поток прекращает работу, хорошо бы эту метку динамически прибить. Делаю так: delete MyLabel; При выполнении этой строчки возникает исключение "Access violation at address ... in module 'ntdll.dll'. Write of address ..." В итоге метка-таки удаляется (т.е. на форме ее уже не видно), но как же все-таки удалить ее правильно, без сообщения об ошибке? Полный код участка, где происходит попытка удаления: void __fastcall TMyThread::Execute() { while(!Terminated) { //здесь выполняется код во время работы потока } //ПЫТАЮСЬ УДАЛИТЬ!!! delete MyLabel; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 04:19 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
MyLabel=new TLabel(NIL); ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 09:56 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
ой чуть обманул :) попробуй Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 09:58 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
JibSkeart прав, если хочется самому удалять созданные объекты (в VCL), то не нужно в конструкторе задавать Овнера, иначе удалением будет заниматься указанный Owner (в вашем случае - Form1). Т.е. происходит попытка повторного удаления объекта. справка __fastcall virtual TLabel(Classes::TComponent* AOwner) : Stdctrls::TCustomLabel(AOwner) { } Description Call TLabel indirectly, using the new keyword, to create a label at runtime. AOwner is the component, typically the form, that is responsible for freeing the label. It becomes the value of the Owner property. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 11:12 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
JibSkeartNIL Говорят, советских разведчиков ловили на том, что они ширинку застёгивали, выходя из туалета .... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 22:27 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
Dmitrii K. DK> JibSkeart прав, если хочется самому удалять созданные DK> объекты (в VCL), то не нужно в конструкторе задавать DK> Овнера, иначе удалением будет заниматься указанный Owner DK> (в вашем случае - Form1). Т.е. происходит попытка DK> повторного удаления объекта Дак попытка повторного удаления будет происходить при удалении формы-владельца объекта. А у автора АВ при попытке ручного удаления. Ставлю на Synchronize, вернее на его отсутствие Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 22:28 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас JibSkeartNIL Говорят, советских разведчиков ловили на том, что они ширинку застёгивали, выходя из туалета .... Posted via ActualForum NNTP Server 1.3 Ага, развелось тут двойных агентов ;)) Карабас БарабасСтавлю на Synchronize, вернее на его отсутствие Потоками пока не баловался (к сожалению), поэтому потоко-зависимых проблем и не учуял ) Зашедулил себе задание, опосля диплома обязательно побалуюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 23:09 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
Dmitrii K. Карабас Барабас JibSkeartNIL Говорят, советских разведчиков ловили на том, что они ширинку застёгивали, выходя из туалета .... Posted via ActualForum NNTP Server 1.3 Ага, развелось тут двойных агентов ;)) Карабас БарабасСтавлю на Synchronize, вернее на его отсутствие Потоками пока не баловался (к сожалению), поэтому потоко-зависимых проблем и не учуял ) Зашедулил себе задание, опосля диплома обязательно побалуюсь... Я не агент, я просто сотрудничаю с обеими сторонами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 08:35 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
JibSkeartЯ не агент, я просто сотрудничаю с обеими сторонами это как раз и называется "двойной агент" :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 08:48 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
дык может, сначала надо было его от парента отвязать, а потом удалять? А вообще если по-хорошему, то гуем должен заведовать лишь один поток и ни потоком больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 12:41 |
|
||
|
Динамическое удаление объектов
|
|||
|---|---|---|---|
|
#18+
maxwell...При выполнении этой строчки возникает исключение "Access violation at address ... in module 'ntdll.dll'. Write of address ..."... пастарайтесь сделать синхронные фазы подъёма и опускания вашей нитки... в этих фазах от имени одно и того же потока захватывайте и освобождайте Ваши ресурсы...и о таких проблемах вообще позабудете... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=337&tid=2030578]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 345ms |

| 0 / 0 |
