Главная страница
    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.039 c
2-1184826661
pathfinder
2007-07-19 10:31
2007.08.12
Сообщение компилятора Delphi 2006..


2-1184491327
>>DEATH<<
2007-07-15 13:22
2007.08.12
сслки из хтмл кода


3-1177516281
Антон Шестаков
2007-04-25 19:51
2007.08.12
dbgrid наподобие treeview


2-1184254417
calcal
2007-07-12 19:33
2007.08.12
drag and drop и listview


1-1181049672
maxistent
2007-06-05 17:21
2007.08.12
Импорт процедур из EXE...





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