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

Вниз

Как уничтожить форму с компонентами   Найти похожие ветки 

 
Trible   (2006-12-23 22:31) [0]

Есть две формы с какими-либо компонентами.
Вторую  форму создаем и унчтожаем руками.
Но при уничтожении остаеться не освобожденная память (MemProof).
Как УНИЧТОЖИТЬ форму с ее компонентами.. ?

Освобождаю как обычно - Form2.Form.free.
Только не говорите про Add2Autofree, это ж придеться к каждому компоненту
руками писать... У меня их там многовато...


 
ANTPro ©   (2006-12-23 22:38) [1]

> [0] Trible   (23.12.06 22:31)
> Только не говорите про Add2Autofree, это ж придеться к каждому
> компоненту
> руками писать...

: )


 
MTsv DN ©   (2006-12-23 23:07) [2]

> Только не говорите про Add2Autofree, это ж придеться к каждому
> компоненту
> руками писать...

А зачем руками-то??? Я на форуме уже пару раз сканер компонентов выкладывал, все автоматом и установится :)

http://delphimaster.net/view/11-1163643952/ - здесь посмотрите. Использовать элементарно...


 
Trible   (2006-12-24 00:15) [3]

Вощем нет стандартного средства. Нужно опять мудрить...
ANTPro так улыбнулся, я уж обрадовался, думал есть классное решение, которое все знают, а я нет.. А может ANTPro знает, но не хочет говорить??
ANTPro, как вы бы сделали в этом случае?
Допустим у вас много форм и на каждой форме по 20 компонентов. А?


 
Trible   (2006-12-24 00:18) [4]

Я на форуме уже пару раз сканер компонентов выкладывал, все автоматом и установится :)

Inc файл разных форм обновляеться время от времени... Так что задолбаешся каждый раз этот сканер включать.


 
Trible   (2006-12-24 00:19) [5]

Хотя за решение спасибо. Самое удобное в этом случае.


 
ANTPro ©   (2006-12-24 17:40) [6]

> [5] Trible   (24.12.06 00:19)
> Самое удобное в этом случае.

Вот-вот.

> [3] Trible   (24.12.06 00:15)
> Допустим у вас много форм и на каждой форме по 20 компонентов.
> А?

Если конторллы создаются MCK, то Add2Autofree добавится само...

Если вручную то, возможно имеет смысл сделать массив контролов (с ним и работать проще):
CtrlInForm:array of PControl;


 
Trible   (2006-12-24 18:12) [7]

Если конторллы создаются MCK, то Add2Autofree добавится само...

Да неужели?  Что то я в inc файле этого не заметил, да и  memproof тоже.


 
ANTPro ©   (2006-12-24 18:36) [8]

> [7] Trible   (24.12.06 18:12)
> Что то я в inc файле этого не заметил

Кстати да, Add2Autofree не для всех контроллов... что-то изменилось...


> [7] Trible   (24.12.06 18:12)
> memproof тоже.

Не юзал этого зверя пока еще...
А Add2Autofree только добавляет объект в список, так что memproof на нее ругатся не должен...


 
Vladimir Kladov   (2006-12-24 20:25) [9]

э э! Визуальные контролы сами добавляются, когда создаются.


 
ANTPro ©   (2006-12-24 20:49) [10]

> [9] Vladimir Kladov   (24.12.06 20:25)
> э э!

: )
Единственная строка с Add2AutoFree [MCK2.49,KOL2.48] в Unit1_1.inc :
Result.Form.Add2AutoFree( Result );


 
ANTPro ©   (2006-12-24 21:15) [11]

> [9] Vladimir Kladov   (24.12.06 20:25)

Теперь понял...


 
Trible   (2006-12-25 14:14) [12]

Народы объясните мне причину. Т.к. я в основном использую Grush компоненты, я в mck добавил add2autofree - чтобы само генерилось..

В итоге в inc файле генериться нужная ведь вида :

Result.GRushPanel1  :=  PGRushControl( NewGRushPanel(Result.Form).SetAlign ( caClient ) );
Result.GRushPanel1.Add2AutoFree(Result);


Но теперь при уничтожении (закрытии) любой формы вылетает AV блин. В чем дело???


 
Galkov ©   (2006-12-25 14:40) [13]

Логичнее выглядело бы добавление того, кого создал, ИМХО


 
Trible   (2006-12-25 15:42) [14]

Ну эт верно, просто все кричат что Add2Autofree - решение всех проблем.
На форме из компонентов лежит Grush кнопка. При закрытии AV :(


 
Vladimir Kladov   (2006-12-25 17:05) [15]

В SetParent добавляется. Все контролы создаются с родителем через _NewWindowed. В том числе и GRush и любые другие дополнительные. При добавлении не проверяется, что уже есть в списке, и добавляется повторно. Соответственно, на выходе будет повторно уничтожить уже уничтоженный объект.


 
Trible   (2006-12-26 00:11) [16]

Почему тогда memproof показывает утечку? А если форму повторно окрыть не уничтожая, то утечки нет.


 
vampir_infernal   (2006-12-26 06:46) [17]

MemProof часто показывает утечку, когда ее на деле нет. На 100% верить ему я бы не стал.


 
Trible   (2006-12-26 13:53) [18]

MemProof часто показывает утечку, когда ее на деле нет.

Вы отвечаете за свои слова? Доказать сможете?


 
SergeR ©   (2006-12-26 16:35) [19]

Утечка была TObj.Final в asm версии. В 2.49 это исправлено. :\
В GRush`е тоже была утечка, тоже недавно исправлено.


 
Trible   (2006-12-26 17:37) [20]

Я в курсе. Стоит 49 - ая.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.046 c
1-1181137708
oleg_teacher
2007-06-06 17:48
2007.08.12
вопрос.


2-1183128441
TIF
2007-06-29 18:47
2007.08.12
DLL & PNG, GIF, JPG и т. п.


2-1184580673
httpbeginer
2007-07-16 14:11
2007.08.12
создание строки HTTP запроса


15-1184592922
Sdubaruhnul
2007-07-16 17:35
2007.08.12
Война браузеров доходит до идиотизма


15-1184593403
TStas
2007-07-16 17:43
2007.08.12
Как снести брандмауэр





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский