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

Вниз

(Глубина визуальн.наследования >3) = (Delphi7 умирает)   Найти похожие ветки 

 
sokohigh   (2003-12-10 16:11) [0]

Когда я работаю в IDE с экземплярами форм или фреймов, созданных при помощи визуального наследования с кол-вом предков больше 2-х, Delphi даже на приличной машине начинает жутко тормозить, а то и вылетать.
Нормально ли это?


 
Малиновский Владимир   (2003-12-10 16:18) [1]

У меня в проекте ~120 фреймов, средняя глубина 2-3 предка, несколько - 4-5, все нормально вроде, машинка P-III-800, 128MB.
Тормоза были, когда я пытался работать не с одним проектом одновременно, а с группой из нескольких десясков. (Ну, там всякие .dll). Да, Delphi 7.
Может, ты всех потомков открыл, а в родителе визуальные компоненты двигаешь?


 
sokohigh   (2003-12-10 16:39) [2]


> Малиновский Владимир

Да нет, откыта только форма-потомок (у нее 3 визуальных предка). Как-то работать конечно можно, но уж очень тормозит. Последней каплей было ожидание в течение ~5 сек., когда набранный в ObjectInspector Caption у TLabel появится-таки на форме. А машинка то - P4/2.4/512MB, вот.
Но твой опыт обнадеживает, а то уж подумывал отказываться от визуальности.


 
Малиновский Владимир   (2003-12-10 16:45) [3]

Ну, в общем-то, на родителях я редко "шкурку" порчу. В основном - код. Очень аккуратно здесь работать надо, особенно если переопределяешь визуальные проперти на потомках, и если эти проперти очень объемные - типа TImageList etc. Скрипт в .dfm очень разбухает, и при последуещей правке родителя процессору трудно синхронизировать изменения. Долго приспосабливался, пока выработал свою методику работы.


 
Erik   (2003-12-10 16:46) [4]

Я лично избегаю визуального наследования. В грайнем случае можно из репоритария взять или Frame использовать.


 
Малиновский Владимир   (2003-12-10 16:48) [5]

Так и я про Frame.


 
sokohigh   (2003-12-10 16:54) [6]


> Малиновский Владимир

Ну а если "шкурку не портить" - то зачем ВИЗУАЛЬНОЕ наследование? Можно просто в опеределнии класса формы поменять =class(TForm) на =class(TMySuperPuperForm), которую спректировать можно и не визуально - и весь код унаследуется. Мне-то лично в основном нужно, чтобы наследовались экш- и имедж- листы, тулбары там всякие... ну и код конечно.


 
Малиновский Владимир   (2003-12-10 17:10) [7]

А мне удобно. Я просто говорю: аккуратнее. Переодически смотрите, во что .dfm модуль превращается. Delphi не очень справляется со сложной работой по поводу отслеживания наследования значений published свойств. Бывает, я "ручками" .dfm модуль правлю. Не очень славно, но вариантов нет.


 
sokohigh   (2003-12-10 17:25) [8]


> Малиновский Владимир

Буду очень признателен за тезисное изложение упомянутой методики работы.


 
Малиновский Владимир   (2003-12-10 17:31) [9]

Вряд ли я опишу более подробно, чем уже описал выше. Лень.


 
sokohigh   (2003-12-10 17:48) [10]


> Малиновский Владимир

Все равно спасибо.


 
Малиновский Владимир   (2003-12-10 17:54) [11]

Все равно лень. Да и домой пора.


 
sokohigh   (2003-12-15 15:09) [12]

Опытным путем выяснил, что торможение начинается, если использовать в визуальных предках (формах и фреймах) TImageList и наследников TDataSet. От использования TImageList в предках отказаться легко и, более того - правильно, а вот невозможность нормально использовать в визуальном наследовании TClientDataSet-ы мне сильно мешает. Видимо альтернативы созданию компонентов в этом случае нет.


 
REA   (2003-12-15 15:25) [13]

И оно подглюкивает - сбрасывает иногда некоторые свойства у потомков. Особенно не любит DataSet+DB Controls.



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

Форум: "Основная";
Текущий архив: 2003.12.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-86386
olookin
2003-12-15 14:09
2003.12.26
Как не засорять память?


14-86505
Агент Смит [8]
2003-12-03 14:53
2003.12.26
---|Ветка была без названия|---


1-86370
OlegM
2003-12-16 07:30
2003.12.26
Отчистить компонент Image от изображения как


14-86543
Думкин
2003-12-03 06:07
2003.12.26
С днем рождения! 3 декаабря.


6-86474
LOX
2003-10-10 20:23
2003.12.26
ICQ





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