TRzPageControl和TRzSizePanel能否成组成这样效果

zbest 2009-12-29 03:26:59


我要一个MDI,右侧始终显示如上图所示。

如上图所示,右侧是几个tab(请注意,这几个tab是不会隐藏的),然后点某个tab就随着在左侧显示出对应的内容,(左侧空间的最左边是类似一个splitter的,我用了raize包),现在还要点那个中间的图,收到最右边(不能把tab给隐藏起来)

我先放TRzSizePanel,在其上放TRzPageControl。这样不行(因为收起SizePanel会把带标签的PageControl的tab也给收起来了);
先放PageControl,在其上放SizePanel,也不行(因为PageControl的宽度是定下来的,而SizePanel在变动宽度时和PageControl就不一致了。)
...全文
636 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
tgbd 2009-12-30
  • 打赏
  • 举报
回复
有些提示性的文本,放在EXE外面,要比放在EXE里面有很多优越性,灵活,不占EXE的空间(毕竟这些内容没必要放在EXE中)。要加一些内容只要修改一下外面的文件,不用重新编译了。总之,建议放外面较好。

至于“关于”里的内容,可以用LABEL,也可以用外面的文本,例如产生一个向上滚动效果的信息显示,楼主可以去试试。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 tgbd 的回复:]
"这个不好在设计时直接在里面写字啊(里面可能要有不同的字体、字号、颜色,链接等)" HTML文件最能满足你这种要求。
[/Quote]

看了Raize5.2的Demo里TRzRichEdit的使用,是这样用的:
procedure TfrmMain.LoadNotes( const FileName: string );
begin
edtNotes.Clear;
edtNotes.Lines.LoadFromFile( FPath + FileName + '.rtf' );
end;
但是这样就必须在自己编译过的exe之外要有别的文件支持,我想最好能写进exe编译进去。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 tgbd 的回复:]
"这个不好在设计时直接在里面写字啊(里面可能要有不同的字体、字号、颜色,链接等)" HTML文件最能满足你这种要求。
[/Quote]

另外问下,类似软件的“关于”里,有些大段文字,有不同大小、字体、等等,一般都用什么控件呢。

多谢你的热心回复解答,回头解决掉问题结贴分数基本就给你表示感谢哦。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 tgbd 的回复:]
"这个不好在设计时直接在里面写字啊(里面可能要有不同的字体、字号、颜色,链接等)" HTML文件最能满足你这种要求。
[/Quote]

我想在设计时写进去,这个不像TRzRichEdit,设计时右键就有Edit Lines弹出新框子直接就可写了,而TWebBrowser似乎没有啊。
tgbd 2009-12-30
  • 打赏
  • 举报
回复
"这个不好在设计时直接在里面写字啊(里面可能要有不同的字体、字号、颜色,链接等)" HTML文件最能满足你这种要求。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 tgbd 的回复:]
如果楼主仅是在里面显示帮助性的文字或图片,那么不防考虑使用TWebBrowser控件。很方便可以满足要求。
[/Quote]

这个不好在设计时直接在里面写字啊(里面可能要有不同的字体、字号、颜色,链接等)
zbest 2009-12-30
  • 打赏
  • 举报
回复
TabSheet1Click应为RzPageControl1TabClick
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 zbest 的回复:]
引用 19 楼 tgbd 的回复:
如果那个黄色边不是鼠标落在TAB上的颜色,那么可以设置TabColors->HighlightBar的颜色为 $00149BF0
即与HotTrackColor一样的颜色,即可。至于每一个TAB带上图标,只要放一个ImageList,然后设置page的images即可.


试过这样设置黄色边,似乎没用。
黄边是当前页的颜色。
[/Quote]

HotTrackStyle:htsTabBar就可以了。
才用delphi,呵呵,我会慢慢学习的。

现在是点PageControl的标签的事件设置还没弄好,想要点某个标签触发某事件,但整个标签那一行被点击后都触发了(procedure TForm2.TabSheet1Click(Sender: TObject);),而不是仅仅点某个标签才是。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 tgbd 的回复:]
如果那个黄色边不是鼠标落在TAB上的颜色,那么可以设置TabColors->HighlightBar的颜色为 $00149BF0
即与HotTrackColor一样的颜色,即可。至于每一个TAB带上图标,只要放一个ImageList,然后设置page的images即可.
[/Quote]

试过这样设置黄色边,似乎没用。
黄边是当前页的颜色。
tgbd 2009-12-30
  • 打赏
  • 举报
回复
如果那个黄色边不是鼠标落在TAB上的颜色,那么可以设置TabColors->HighlightBar的颜色为 $00149BF0
即与HotTrackColor一样的颜色,即可。至于每一个TAB带上图标,只要放一个ImageList,然后设置page的images即可.
zbest 2009-12-30
  • 打赏
  • 举报
回复
另外再问下吧,像第一帖中的标签,带有小图标,活动标签上还有个突出的条状彩色,这是用什么控件包做的么?我在Raize里试着没找到对应的属性设置。
zbest 2009-12-30
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 tgbd 的回复:]
有些提示性的文本,放在EXE外面,要比放在EXE里面有很多优越性,灵活,不占EXE的空间(毕竟这些内容没必要放在EXE中)。要加一些内容只要修改一下外面的文件,不用重新编译了。总之,建议放外面较好。

至于“关于”里的内容,可以用LABEL,也可以用外面的文本,例如产生一个向上滚动效果的信息显示,楼主可以去试试。
[/Quote]

好的,感谢tgbd多次给出的帮助,马上按照指导继续调试了。

追加20分吧,以示感谢。
tgbd 2009-12-29
  • 打赏
  • 举报
回复
如果楼主仅是在里面显示帮助性的文字或图片,那么不防考虑使用TWebBrowser控件。很方便可以满足要求。
zbest 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tgbd 的回复:]
你上面两个属性
再将page的字体设置成@fixedsys
再将每个TAB的字体设置成宋体,因为PAGE的字体被设置成@fixedsys,所以要改一下。

不知道新版RZ组件有没有page中TAB的字体,我的是4.03版,没有。所以变相通过字体来实现那种效果。
[/Quote]

我用的5.2,在delphi2010下,非常感谢你的方法,这样文字方向显示正确了,不过字体效果看起来有点怪,正在继续调。

我要的这个效果,是想这样:在mdi下的每个子窗体的右侧都有这样的侧边,显示当前的“帮助”用户想看就点开,不想开就收起来。

接下来就是,要在TRzSizePanel里放一个显示文字的控件,试了试,label,memo都不好用,系统自己的RichEdit不好在写程度时向里写文字,如果用TRzRichEdit,里面的文字会由TRzSizePanel的初始宽度而固定,如果运行后拉动边上来改变宽度,TRzRichEdit里的文字并不会随着宽度而变,而是像被在初始宽度时的每行尾部加上了回车。
bdmh 2009-12-29
  • 打赏
  • 举报
回复
very可以,设置也签位置就ok了
macchen1224 2009-12-29
  • 打赏
  • 举报
回复
up.
tgbd 2009-12-29
  • 打赏
  • 举报
回复
你上面两个属性
再将page的字体设置成@fixedsys
再将每个TAB的字体设置成宋体,因为PAGE的字体被设置成@fixedsys,所以要改一下。

不知道新版RZ组件有没有page中TAB的字体,我的是4.03版,没有。所以变相通过字体来实现那种效果。
zbest 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tgbd 的回复:]
pageConctrol距右,且高度只要显示出TAB即可
中间放一个TRzSizePanel,里面可以放一个PANEL,
点击pageConctrol的TAB时,根据需要加载内容去。

这样,点击TRzSizePanel那个左边的就没关系了。
[/Quote]

多谢,这应该是个解决方法,虽然要写代码根据需要加载,但应该可以实现(不像我原来想直接设置属性就可以),马上测试。

另外问个问题,TRzPageControl的TabSheet的caption如何显示纵向的字啊,
设置目前如下:
TabOrientation :toRight
TextOrientation :orVertical

这样不行啊,汉字虽然是由上向下排的,但所有字有顶端都是向右的,如何纵向向下排列字,且字的顶端都向上呢?
tgbd 2009-12-29
  • 打赏
  • 举报
回复
pageConctrol距右,且高度只要显示出TAB即可
中间放一个TRzSizePanel,里面可以放一个PANEL,
点击pageConctrol的TAB时,根据需要加载内容去。

这样,点击TRzSizePanel那个左边的就没关系了。
zbest 2009-12-29
  • 打赏
  • 举报
回复
先放PageControl,在其上放TRzSizePanel的话,
TRzSizePanel Align:=alClient;
如上设置的话,TRzSizePanel勾上Show HotSpot的话,会看不到中间竖的小条。

这也就谈不上能拉动小条变化宽度的操作了
加载更多回复(2)

5,388

社区成员

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

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