如何在 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'.
中所述
这样我的问题就解决了
感谢大家。
毛里齐奥.
在 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'.
中所述这样我的问题就解决了
感谢大家。 毛里齐奥.