Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Thisform.oTree.ImageList  [new]
GrayFox
Guest
Dobroe den vsem.
Mne nado svyazat treeView s ImageList Control?
napiasl tak :thisform.oTree.ImageList = Thisform.oImege.ListImages
I vot oshibka
Zarane bloqadaren.
16 сен 05, 16:12    [1885616]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
thisform.oTree.Object.ImageList = Thisform.oImege.ListImages
16 сен 05, 16:42    [1885785]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Кстати, надеюсь, что Thisform.oImege - это объект-контейнер (Container). В противном случе, что такое "oImege"?
16 сен 05, 16:43    [1885791]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
Spasibo Vladimir
oimaje - eto standartniy Olecontrol(ImageList Control 6.0)
16 сен 05, 16:48    [1885816]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
thisform.oTree.Object.ImageList = Thisform.oImege.ListImages
i eshyo ras oshibka.
16 сен 05, 16:51    [1885834]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Тогда надо писать так

thisform.oTree.Object.ImageList = Thisform.oImege

Надо в свойство объекта TreeView записать ссылку на сам объект ImageList, а не на его коллекцию.

Начиная с версии VFP6 ключевое слово "Object" уже не обязательно. Хотя и не мешает.
16 сен 05, 16:53    [1885842]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
A seychas dayot oshibku "property olmage iz not found"
u menya Foxpro9
16 сен 05, 17:11    [1885931]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Где именно (в каком методе) даешь эту команду?

Дело в том, что если ты даешь эту команду в событии INIT объекта TreeView, то нет никакой гарантии, что к этому моменту объект ImageList уже добавлен на форму.

Управлять физическим порядком добавления объектов на форму, если эти объекты добавлены через дизайнер формы, нет никакой возможности.

Естесственно, что если к моменту обращения к объекту его еще физически не существует, то ты и получишь сообщение об ошибке.

Чтобы избежать подобной неопределенности, метод наполнения TreeView надо вызывать из события INIT самой формы. К этому моменту все объекты уже добавлены и обращение к ним пройдет без ошибок.
16 сен 05, 17:33    [1886043]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
Da immeno v Init dayu etu komandu.A mojno Load?
16 сен 05, 18:33    [1886267]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
Posmotrite pjalusta.

К сообщению приложен файл. Размер - 0Kb
16 сен 05, 19:14    [1886366]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GoshaS
Member

Откуда: юг Архангельской обл.
Сообщений: 392
GrayFox
Da immeno v Init dayu etu komandu.A mojno Load?

Load формы - еще не один объект на форме не создан.
Init-объктов формы
Init формы - после создания объектов формы.

Вроде так
16 сен 05, 19:31    [1886416]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Или это опечатка или ты ошибся в написании имени объекта.

Сообщение об ошибке: "property olmage iz not found"
Ссылка на объект: Thisform.oImege

Где-то ты ошибся в буквах. "L" вместо "I" и "e" вместо "a". Проверь корректность имени объекта ImageList.

В остальном, все правильно.
16 сен 05, 22:52    [1886669]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
Sposibo Vladimir.
Oshibka bilo immeno na bukve .Rabotaet.
A mojno soedinit ImageList na otdelnix Nodes? Chtobi na Nodes otobrajalsiya druqie ikonki.
17 сен 05, 11:48    [1886997]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
GrayFox
Sposibo Vladimir.
Oshibka bilo immeno na bukve .Rabotaet.
A mojno soedinit ImageList na otdelnix Nodes? Chtobi na Nodes otobrajalsiya druqie ikonki.

Это 5 параметр метода Nodes.ADD(). Там указывается индекс (число) иконки из коллекции ассоциированного объекта ImageList.

ThisForm.MyTree.Nodes.Add(,,"_1_","Первый узел",1)

Ну, или можно указать явно

ThisForm.MyTree.Nodes(1).Image = 1

Это опять-таки индекс иконки из коллекции ImageList

6 параметр метода Nodes.ADD() это тоже индекс иконки, но той, которая будет отображаться на узле, когда он является выбранным. Явное указание можно сделать так

ThisForm.MyTree.Nodes(1).SelectedImage = 1

Если он не указан, то, по умолчанию считается, что он равен 5 параметру.

Есть еще одно свойство, связанное с иконками - это какую иконку надо отображать, когда узел раскрыт.

ThisForm.MyTree.Nodes(1).ExpandedImage = 1

Более подробно о работе с TreeView можешь почитать здесь

http://kodu.neti.ee/~juri4/vfpplus/ax_treeview_faq_01_ru.htm
17 сен 05, 13:30    [1887104]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
GrayFox
Guest
Sposibo Viladimir.Ya vam ochen bloqadaren.
Ya jelayu vam zdorovie.
17 сен 05, 13:46    [1887141]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi ВладимирМ!

> Управлять физическим порядком добавления объектов на форму, если эти
> объекты добавлены через дизайнер формы, нет никакой возможности

Ну на самом деле отчасти можно... Во-первых можно сделать Ctrl+X/Ctrl+V -
т.е. якобы "удалить", а потом добавить обратно объект(ы)
Во-вторых из панели Layout или меню Format через Bring to top/Sent to back -
правда в этом случае для того чтобы увидеть эффект перемещения (т.е. чтобы в
списке объектов окна Properties они выстроились в том порядке который
РЕАЛЬНО стал новым физическим порядком) нужно закрыть и снова открыть форму
в дизайнере.

P.S. Конечно же обычно значительно проще не порядком объектов рулить, а
просто перенести код в метод Init формы например :)
P.P.S. Также интересно, но в VFP7/8/9 (6-ки нет под рукой) физический
порядок следования объектов в форме не мешает писать This.ImageList =
ThisForm.oImageList в Init TreeView... Видимо ActiveX контролы реально
создаются ДО того как начинает выполняться цепочка Init-ов...

Posted via ActualForum NNTP Server 1.3

17 сен 05, 20:54    [1887585]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
Aleksey-K
Member

Откуда: Москва
Сообщений: 3116
Igor Korolyov

Также интересно, но в VFP7/8/9 (6-ки нет под рукой) физический
порядок следования объектов в форме не мешает писать This.ImageList =
ThisForm.oImageList в Init TreeView...

Думаю, что это так. У меня эта строка находится в INIT TreeView класса и НИ РАЗУ не возникала ошибка.
С Уважением, Алексей.
18 сен 05, 10:05    [1887838]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Думаю, здесь логика несколько попроще.

Команда This.ImageList = ThisForm.oImageList всего-лишь говорит о том откуда надо брать иконки в тот момент, когда в этом возникнет необходимость.

Т.е. вот если там же, в TreeView.Init начать использовать объект ThisForm.oImageList, ну вроде

This.Nodes(1).Image = 1

то могут возникнуть глюки

PS: когда я начинал изучать работу с TreeView (Win 95 + VFP6) были реальные глюки связанные именно с порядком физического создания объектов на форме. Пришлось переносить код наполнения дерева в init-формы.
18 сен 05, 20:03    [1888259]     Ответить | Цитировать Сообщить модератору
 Re: Thisform.oTree.ImageList  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi ВладимирМ!

> Т.е. вот если там же, в TreeView.Init начать использовать объект
> ThisForm.oImageList

Именно там я дерево и "наполнял", используя последние параметры метода Add -
индексы картинок.
Всё отображалось как и надо. Совсем другой вопрос, что РЕАЛЬНО init этого
самого ImageList не отработал ещё - и если ТАМ есть код (например загоняющий
картики программно в контрол) - то будет ой ;)
В общем налицо "раздвоение" процесса инициализации - одно дело "создание"
контрола, и даже создание свойства-ссылки в форме, другое дело - отработка
метода Init фоксового OleControl контейнера...

Posted via ActualForum NNTP Server 1.3

20 сен 05, 00:49    [1892257]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить