鱼C论坛

 找回密码
 立即注册
查看: 3110|回复: 0

[学习笔记] 围观窗体与组件06 - 零基础入门学习Delphi030

[复制链接]
发表于 2017-8-20 19:25:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
容器型控件(Panel, GroupBox, ScrollBox)可以将其他控件放到其中,又称为父组件。父组件能对子组件发生作用,父组件销毁(Destroy)时子组件同时被销毁。
看一个子组件是否在父组件中,并不仅仅看其在父组件的上面,而是看Object TreeView的相互关系。此图三个子组件都在父组件之中。
1.jpg

此图BitBtn1看上去在Panel1中,但实际上与panel一点关系也没有,从旁边王父组件拖动子组件时就会出现此问题。
2.jpg
Object TreeView中用鼠标拖动可以改变父子关系。
Panel控件的属性
Enable—当为False时,虽然其中的子组件看起来正常,但都无法使用。
ControlCount—其中的子组件的数量。
GroupBox相当于带标题的PanelScrollBox相当于带滚动条的Panel
RadioGroupCheckListBox都是父子组合型组件,不能再加入其他组件。
ToolBar工具栏控件自动处于窗体的上方,菜单之下,也是父子组合型控件。右键New Button可增加新图形按钮,这些按钮是没有图像的,需添加一个ImageList控件导入ico文件,注意这些图像不一定和按钮意义对应,可条件ImageList窗口的image图像次序或在按钮改变ImageIndex索引值。
3.JPG

StatusBar状态栏自动位于窗体的下方,显示当前程序的一些状态信息。
4.JPG

用其编辑器可增删每个小panel,并调整次序,同时可调整panel的长度。
往状态栏添加信息:
显示内容的方法是给StatusBar1.Panels[index].Text赋值。或者给StatusBar1.Panels.items[index].Text赋值。
例题是显示memo的状态,总行数是Memo1.Lines.count,总字数是Memo1.SelStart,当前行是Memo1.CaretPos.Y,当前列是Memo1.CaretPos.X。通过format格式化字符串把两个整数转换成字符串:format('%d行,第%d', [Memo1.CaretPos.Y + 1, Memo1.CaretPos.X + 1])
本段程序如下:
procedure TForm1. Memo1Change (Sender:TObject);
begin
StatusBar1.Panels.items[1].Text := '总行数: ' +IntToStr(Memo1.Lines.count);
StatusBar1.Panels[2].Text := '总字数: ' +IntToStr(Memo1.SelStart);
StatusBar1.Panels[3].Text := format('%d行,第%d',[Memo1.CaretPos.Y + 1,  Memo1.CaretPos.X+ 1]);
end;
这里有一个问题,它是靠Memo1Change的事件驱动的,鼠标点击改变光标位置则不会显示变化。

评分

参与人数 1鱼币 +4 收起 理由
小甲鱼 + 4

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表