Вниз
Скачать: CL | DM;

(Глубина визуальн.наследования >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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
1-86333
Dest
2003-12-12 23:21
2003.12.26
Выполнение программы скачками


14-86557
hatchy
2003-12-01 10:59
2003.12.26
Ошибка...Windows XP


1-86416
Макс2
2003-12-13 18:43
2003.12.26
StringGrid


14-86496
Думкин
2003-12-04 17:28
2003.12.26
С днем рождения! 4 декабря.


14-86492
Digitman
2003-12-04 12:48
2003.12.26
Песня о благородном джигите и неблагодарных блюстителях




   Наверх