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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.009 c
3-98511
bss
2003-10-09 11:42
2003.10.30
Как в SQL-операторе SELECT вывести разницу в днях между датами?


1-98676
Eugene_29
2003-10-20 19:25
2003.10.30
Поле ввода фикс. размера с автомат. изменяющимся размером шрифта


1-98647
dream
2003-10-17 08:19
2003.10.30
как из dll передать строку в приложение ?


1-98536
ZnKi
2003-10-20 18:06
2003.10.30
Главное меню...


4-98937
CIH
2003-08-25 09:17
2003.10.30
Работа со строками





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