Как использовать пользовательский значок в виде дерева разговоров дельфина?

В виде дерева разговоров Dolphin Smalltalk я хотел бы использовать пользовательский значок, в зависимости от состояния отображаемого элемента (различное состояние, другой значок). Как я могу это сделать?

Я не могу понять, как использовать "мой" значок. Я создал класс "connection", с переменной экземпляра "connected" и двумя методами класса "connectedIcon" и unsnectedIcon, который возвращает изображения значков. Затем функция экземпляра "icon" возвращает одно или другое изображение в зависимости от состояния соединения.

Я могу добавить экземпляры этого класса в древовидное представление и увидеть имена соединений. Но как показать мои иконки?

Я попытался установить getImageBlock моего представления докладчика с помощью следующего выражения [:obj | значок объекта], но это не работает. (кажется, ничего не происходит).

это сделано в моей инициализации инициализации:

инициализировать супер инициализировать. treePresenter view getImageBlock: [:obj | значок объекта]

что с этим не так? с наилучшими пожеланиями Маурицио

3 ответа

Решение

Когда вы редактируете TreeView, одним из свойств является getImageBlock. По умолчанию это не блок, а другой объект, который понимает сообщение #'значение:' (класс IconicListAbstract). Вы можете заменить это свойство блоком кода (или другим объектом, который понимает #'value:') и ответить на изображение, которое вы хотите отобразить.

В Microsoft Windows значки обычно хранятся в DLL. Вы должны иметь возможность использовать проводник значков или инструмент редактирования, чтобы увидеть значки в DLL. Например, получите IconExplorer с http://www.mitec.cz/iconex.html и попробуйте открыть DolphinDR7.dll. Совпадают ли значки и цифры с тем, что вы видите, когда возвращаете число в своем приложении?

Чтобы определить (или переопределить) используемую библиотеку ресурсов, см. SessionManager>>#'defaultResLibPath'.

Как правило, getImageBlock устанавливается с помощью редактора свойств в редакторе GUI, но установка его с помощью кода также может работать.

Чудесный Дельфин Смолток!

У меня было две проблемы

1) как и где изменить метод getImageBlock моего Treepresenter. 2) где разместить иконки и как получить индекс изображения каждого значка.

Это решение:

1) это не нужно. Treeview отправляет в мою модель сообщение "#iconImageIndex", которое обрабатывается методом по умолчанию (в классе Object), который отправляет моему объекту сообщение #icon, а в результате этого сообщения (значок) - сообщение #iconIndex. сообщение понимается по значку, который отвечает своим собственным значком индекса.

Поэтому единственный метод, который мне нужен, - это #icon в моем классе Connection, который я реализовал следующим образом:

открыт значок ifTrue: [^ Соединение подключено Иконка] ifFalse: [^ Соединение не подключено Иконка]

В самом классе две иконки импортируются в изображение путем оценки createIconMethod, как объяснено в статье блога "Красота с меньшим количеством зверя".

Так что мои проблемы решены.

Спасибо всем. Маурицио.

Другие вопросы по тегам