1

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

我无法真正理解如何使用“我的”图标。我创建了一个类“connection”,其中包含一个实例变量“connected”和两个类方法“connectedIcon 和 unconnectedIcon”,它们返回图标图像。然后是一个实例函数“icon”,它根据连接状态返回一个或另一个图像。

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

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

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

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

它出什么问题了 ?最好的问候毛里齐奥

4

3 回答 3

3

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

于 2016-07-26T16:48:52.250 回答
1

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

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

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

于 2016-08-03T23:46:58.387 回答
0

精彩的海豚 Smalltalk!

我有两个问题

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

这是解决方案:

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

所以我需要实现的唯一方法是我的类 Connection 中的#icon,我实现如下:

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

在类本身中,通过评估 createIconMethod 将两个图标导入图像中,如博客文章“Beauty with less Beast”中所述。

这样我的问题就解决了。

谢谢大家。毛里齐奥。

于 2016-08-04T12:21:10.550 回答