TreeView节点分色显示及TImage控件组问题!棘手!!!

symansoft 2000-03-26 04:42:00
列位Delphi先行者:
在下用控件时有几个问题无法解决,我怀疑Delphi是否能解决:
1)用TreeView时,我希望某节点用红色显示Text,而其子节点用兰色显示Text,或某分支用别的什么颜色,不知是否可实现。
2)TImage控件有时仍觉得不太方便,有TImage控件数组就方便多了,但Form中如何使用TImage数组呢?


盼望指教!

愚人,2000.3.26
...全文
279 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
symansoft 2000-03-30
  • 打赏
  • 举报
回复
唉,Lin先生有些不耐烦了。不过问题还是要搞清楚的,因C++Builder安装目录下没有Lin所说的..\Demos\CustomDraw\例子,你何不选一个Delphi的完整例子并加上注释发表呢。看样子恐怕要到C++Builder讨论区去了(因当时觉得Delphi区热闹些)。不过我会尽快给分的,再等一两天吧,看是否有更详细的解决方法。

愚人,2000,3,29
Lin 2000-03-30
  • 打赏
  • 举报
回复
  I'm so sorry. 因为你在Delphi论坛提出这个问题,我以为你安装了Delphi。既然这样,我G一份给你,里面有详细的注释。改成BCB应该不难,毕竟是一家产品么。
  再祝你好运!
                                          Yours Lin
Lin 2000-03-29
  • 打赏
  • 举报
回复
唉,......???
symansoft 2000-03-28
  • 打赏
  • 举报
回复
诚如Lin所说的,通过Sender就可以知道是哪个控件发生了事件。
真不好意思,TreeView节点分颜色显示对我来说非常重要,但我还没有真正实现的方法。Lin说的利用TreeView的自画功能在C++Builer4.0中的例子(我实际上用的是C++Builder)我看了一下,程序没有调试过去。我担心会有以下弊病:
1)自画Item会使TreeView提供的滚动条(Scroll bar)失效。
2)如何设置焦点以及如何取得焦点处的节点。
3)是否影响TreeView原来的展开和折叠功能。
再次感谢诸位的帮助,我还得慢慢地学呢,恐怕以后不会少麻烦诸位了。

盼答,谢谢!

愚人,2000.3,28
ahao 2000-03-28
  • 打赏
  • 举报
回复
方法不太好啊,棋盘当然只用一个Image了.
真要用数组,TImage[]也可以啊?
你要共用一个处理函数可以用Tag属性。
symansoft 2000-03-28
  • 打赏
  • 举报
回复
Lin先生
对不起,其实TImageList似乎不能取代TImage数组还有原因。不如,我想设计一个象棋程序,其中有2只马,分别用Image1和Image2表示,在棋盘上可到处移动而不破坏棋盘的背景。显然,Image1和Image2应该共用一些事件函数如Click(),在事件函数里边肯定会用到对象名Image1或Image2,(我好象没有发现Delphi提供象Foxpro那样的宏代换符号&及功能),那么,我该怎样设置被点中的对象的某些属性(如其坐标)而不管它是Image1还是Image2。

盼答!

愚人,2000.3.28

Un1 2000-03-28
  • 打赏
  • 举报
回复
Sheridan 的 ActiveTreeView 可以实现TreeView节点分色显示.
Lin 2000-03-28
  • 打赏
  • 举报
回复
symansoft:
  看来你对Delphi还是Beginner,其实完全可以的。你可以在棋盘上放n个TImage组件,他们可以共用一个处理句柄,只须在Sender参数中加以区分就可以。也可以象ahao所说,对不同的TImage,给其Tag赋予不同的值。所有的图象数据都可以用TImageList存储起来(不过有这必要吗?)。
  VB与ForPro都是解释型设计语言,当然可以进行宏替换,不过运行效率当然比编译型的Delphi慢许多。用Delphi就的习惯用Delphi的语法思维。
  祝你好运。
Lin 2000-03-27
  • 打赏
  • 举报
回复
1、到Delphi安装目录的....\Demos\CustomDraw下看看,那就是你所需要的。
2、诚如你所言,TImageList可以设置TTreeView的Images、StateImages的图象,不能改变Text的颜色。‘TImage控件有时仍觉得不太方便,有TImage控件数组就方便多了,但Form中如何使用TImage数组呢’,先暂时就这么理解,TImageList就是TImage数组。因为在Delphi中并没有类似VB中的PictureClip组件,当然你可以自己做一个。如果你安装了VB,就可以从Import ActiveX Control菜单中输入这个组件了。
symansoft 2000-03-27
  • 打赏
  • 举报
回复
Lin先生:
感谢你的提示,但由于我刚接触Delphi,故功底很浅所以:
1)到目前为止,我从来没有用过Delphi任何控件的自画功能,能否详细讲述并示以例子,这也许会使上网的一批象我这样的Delphi初学者得益非浅,真正功莫大焉。
2)根据我的肤浅理解,TImageList控件的图标似乎只影响每个节点Text左边的图象,不能改变Text本身的颜色,不知你是怎么实现的,请明示为感。



愚人,2000.3.27
Lin 2000-03-26
  • 打赏
  • 举报
回复
1、设置TreeView自绘风格,自己绘制Node;
2、用Win32面板上的TImageList控件。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧