如何在 Dolphin Smalltalk 树视图中使用自定义图标?

How to use a custom icon in a dolphin smalltalk treeview?

在 Dolphin smalltalk 树视图中,我想使用自定义图标,具体取决于显示项目的状态(不同的状态,不同的图标) 我该怎么做?

我不太明白如何使用 "my" 图标。 我创建了一个 class "connection",带有一个实例变量 "connected" 和两个 class 方法“connectedIcon 和 unconnectedIcon,即 returns 图标图像。 然后实例函数 "icon" returns 一个或另一个基于连接状态的图像。

我可以将此 class 的实例添加到树视图并查看连接的名称。 但是如何显示我的图标?

我试图用以下表达式替换演示者视图的 getImageBlock [:obj | obj 图标],但它不起作用。 (似乎什么也没发生)。

这是在我的演示者中初始化的:

初始化 超级初始化。 treePresenter 视图 getImageBlock: [:obj |对象图标]

有什么问题吗? 最好的祝福 毛里齐奥

当您编辑 TreeView 时,属性之一是 getImageBlock。默认情况下,它实际上不是一个块,而是另一个理解消息#'value:'(class IconicListAbstract)的对象。您可以用代码块(或其他理解#'value:' 的对象)替换此 属性 并回答您想要显示的图像。

在 Microsoft Windows 中,图标通常存储在 DLL 中。您应该能够使用图标资源管理器或编辑工具来查看 dll 中的图标。例如,从 http://www.mitec.cz/iconex.html 获取 IconExplorer 并尝试打开 DolphinDR7.dll。当您 return 在您的应用程序中输入数字时,图标和数字是否与您看到的相符?

要确定(或覆盖)所使用的资源库,请参阅 SessionManager>>#'defaultResLibPath'。

通常,getImageBlock 是使用 GUI 编辑器中的 属性 编辑器设置的,但也可以通过代码设置它。

精彩的 Dolphin Smalltalk!

我有两个问题

1) 如何以及在何处修改我的 Treepresenter 的 getImageBlock 方法。 2) 在哪里放置图标以及如何获取每个图标的图像索引。

这是解决方案:

1) 不需要。 树视图向我的模型发送#iconImageIndex" 消息 这是由向我的对象发送消息 #icon 的默认方法(在对象 class 中)处理的 以及此消息的结果(图标)消息#iconIndex。 从用自己的 iconIndex 回答的图标可以理解此消息。

所以我需要实施的唯一方法是我的 class 连接中的#icon 我实现如下:

图标 打开 ifTrue: [^Connection connectedIcon] ifFalse: [^Connection unconnectedIcon]

在 class 中,两个图标是通过评估 createIconMethod 导入到图像中的, 如博客文章 'Beauty with less Beast'.

中所述

这样我的问题就解决了

感谢大家。 毛里齐奥.