Форум: "Основная";
Текущий архив: 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.006 c