Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Проблема с фреймами   Найти похожие ветки 

 
jack128 ©   (2003-10-13 19:21) [0]

День добрый.

Есть Frame. На него кидаем TreeView. Добовляем к дереву узлы(в дезин тайм). Кидаем этот фрейм на форму. В OnCreate формы пишем

procedure TForm1.FormCreate(Sender: TObject);
begin
Caption := IntToStr(Frame21.TreeView1.Items.Count);
end;

В заголовке видем 0. Это нормально? И вообще как это исправить?


 
Юрий Федоров ©   (2003-10-13 19:25) [1]

А визуально что видим ?


 
jack128 ©   (2003-10-13 19:40) [2]

2 nodes (столько сколько и добавили). Если добавлять узлы в ран тайм (перегружая конструктор фрейма) - та же фигня..

Кстати в OnActivate формы Items.Count уже 2...


 
Юрий Федоров ©   (2003-10-13 19:46) [3]

В принципе это ненормально, имхо.
Думаю, VCL - глюки


 
jack128 ©   (2003-10-13 19:49) [4]

если
> VCL - глюки
, то очень фигово...В проэкте фреймов предостаточно...
А кто нить знает в шестерке такие глюки есть?


 
Юрий Федоров ©   (2003-10-13 19:52) [5]

В 6 тоже самое
(не поленился - проверил)


 
vm   (2003-10-17 14:56) [6]

Повесь на форму кнопку, а на нее свой процедуру:

begin
Caption := IntToStr(Frame21.TreeView1.Items.Count);
end;

Что-нибудь изменилось?

... и еще - в свой обработчик ONCreateForm попробуй добавить проверку на Assigned.

Если ничего не поможет, используй компонент TVirtualTreeView.
Уже больше года использую без всяких проблем, в т.ч. и с фреймами.


 
jack128 ©   (2003-10-19 13:25) [7]


> Что-нибудь изменилось?

Конечно. Caption стал "2"


> ... и еще - в свой обработчик ONCreateForm попробуй добавить
> проверку на Assigned.

?? естественно проверка проходит. Иначе бы AV вылезло.
Будем думать..


 
mOOx_ ©   (2003-10-19 13:47) [8]

А фрейны действительно неободимы? Я от них отказался и заменил обычными Panel. Доволен.


 
jack128 ©   (2003-10-19 14:12) [9]


> mOOx_ © (19.10.03 13:47) [8]

Очень хотелось бы дсин тайм иметь ;-) Если бы не это, то можно было бы любой WinControl использовать


 
mOOx_ ©   (2003-10-19 15:30) [10]

Что за дсин тайм? Что-то яне догоняю :)


 
jack128 ©   (2003-10-19 15:51) [11]

Design time


 
mOOx_ ©   (2003-10-19 16:11) [12]

А ты что, его не имеешь?!! У всех, кто пользуется визуальными редакторами форм он вроде как есть и не кто не жалуется :). Поясни пожалуйста.


 
jack128 ©   (2003-10-19 16:22) [13]

Ты пользуешься панелями, так?
каким образом? просто создаешь наследника и пишешь типа:

constructor TmyPanel.Create(...);
begin
FMyEdit := TEdit.Create(Self);
FMyEdit.OnChange := EditChance;
// и так далее
end;
И где здесь визуальность??

Если же ты пользуешься Templates, то получаешь дублирование кода


 
mOOx_ ©   (2003-10-19 16:31) [14]

А я что, не могу в дизайне бросить на эту панель эдит, настроить ему свойства, события и все в этом духе? Это эдит будет потомком панэлу. Самый настоящий дезайн тайм. По моему, мы о разных вещах говорим :).


 
Rouse_ ©   (2003-10-19 16:34) [15]

Всетаки решил добить фреймы? Попробуй сделать как я тебе на ММР говорил. т.е. класс типа панели и будет тебе аналог фрейма.

Желаю успехов


 
jack128 ©   (2003-10-19 17:04) [16]


> А я что, не могу в дизайне бросить на эту панель эдит, настроить
> ему свойства, события и все в этом духе?

Можешь.

> Это эдит будет потомком панэлу.
Нет, конечно
И потом как мне что? на десяток форм кидать панели, потом едиты, настраивать свойства и тд..


> Rouse_ © (19.10.03 16:34) [15]


> т.е. класс типа панели и будет тебе аналог фрейма.

Вообще судя по всему не фрейм виноват, а TreeView.
Покрайней мере TVirtualTreeView нормально работает..Может действитеьно на него переду(я уж давно к этому компоненту присматрваюсь, а тут такая оказия :-)))


 
mOOx_ ©   (2003-10-19 17:11) [17]

А может просто у тебя опрос каунта происходит до того, как итемы добавились? Хотя у тебя итемы в дизайне добавляются... Не знаю даже.
ЗЫ: сразу надо было говорить про несколько десутков тысяч форм :)


 
KSergey ©   (2003-10-19 17:26) [18]

Rouse_ © (19.10.03 16:34) [15]

А цель?
Чем фреймы вам не угодили?

А по вопросу - да уж, глюк конкретный...
Не удержался, тоже проверил. (D5)


 
Nikolay M. ©   (2003-10-19 17:27) [19]


> Это нормально?

Да.


> И вообще как это исправить?

Перенести код в OnShow.


 
mOOx_ ©   (2003-10-19 17:41) [20]

А чем так хороши фреймы? Да и зачем несколько десятков форм? Это же не оправданное расширение ехе. К тому же если на них должно отображаться примерно одно и тоже (как я понял). Неужели не проще (да и по экономнее) использовать несколько сотен строк кода, чем столько форм. Практика показывает, что твои десятки можно преобразовать в ~10 при этом добавить чуток кода. И для востприятия это легче => мозг отдыхает.
Удачи.


 
jack128 ©   (2003-10-19 18:53) [21]


>
> Nikolay M. © (19.10.03 17:27) [19]
>
> > Это нормально?
>
> Да.

Да? А вот если я кнопку кину на форму по координатам (100, 100) а в OnCreate окажется, что координаты кнопки (0,0) - это нормально? ;-) Не вижу разницы между этим примером и моей проблемой.
хотя, как я уже говорил, ИМХО глюк TreeView


> mOOx_ © (19.10.03 17:41) [20]

Например:
Форма 1: Дерево(адреса) + ListView (список неких устройств, расположенных по данному адресу) + grid c архивами текущего устройства.
Форма 2 : Дерево(адреса) + ListView(список неких устройств, расположенных по данному адресу) + Label"ы GroupBox"ы и тд.

Помоему логично выделить Дерево + ListView + весь связанный с ними код,в отдельный frame, не так ли?


 
Nikolay M. ©   (2003-10-19 22:02) [22]


> Не вижу разницы между этим примером и моей проблемой

Посмотри конструкторы TCustomFrame.Create и TCustomForm.Create.
Потом попробуй TreeView снять с фрейма и положить, к примеру, на TPanel и повторить эксперимент. После чего читаем в хелпе про критические секции, TMultiReadExclusiveWriteSynchronizer и все, что есть рядом - копание в исходниках VCL весьма увлекательное занятие. Очень расширяет кругозор... :)



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

Текущий архив: 2003.10.30;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.017 c
1-98693
inwin
2003-10-21 11:36
2003.10.30
Как изменить иконку ярлыка на рабочем столе?


1-98690
Oleg Barsky
2003-10-21 11:12
2003.10.30
Нужно в определенной дерриктории найти все файлы опр. расширением


3-98489
Patrick
2003-10-08 20:45
2003.10.30
Какой-то глюк BDE.


6-98773
Jo
2003-09-01 17:20
2003.10.30
ftp


14-98847
Polevi
2003-10-07 14:10
2003.10.30
Borland Open Letter