⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lc_bcb_58.txt

📁 c++ builder 的一些txt文档
💻 TXT
字号:

TFORM
  TFORM
一、让窗口总是在最前面
 Form 的FormStyle属性设置为fsStayOnTop值。
二、 动 态 调 用 窗 体Form
 在 缺 省 情 况 下, 由File/New 
Form 生 成 添 加 入 项 目 文 件 中 的 窗 体 都 具 有"Auto 
Create"( 自动 创 建) 的 特 性。 即 只 要 程 序 运 行, 
该 窗 体 就 存 在 于 内 存中 了, 不 管 当 前 它 是 否 被 
调 用。 具 有 这 种 特 性 的 窗 体 一 般适 用 于 窗 体 属 
性 比 较 固 定、 经 常 被 调 用 的 情 况。 其 优点 是 
速 度 快, 缺 点 是 占 用 内 存。 在 实 际 程 序 设 计 中, 
会 遇见 大 量 类 似 对 话 框 功 能 的 窗 体, 它 们 用 于 
显 示 状 态 或 输入 信 息, 仅 须 在 程 序 中 调 用 一 下, 
完 成 其 功 能 就 行 了, 无需 常 驻 内 存。 这 时 可 以 通 
过 选 择Project/Options/Forms, 将"Auto--Create forms " 栏 中 
相 应 的 窗 体, 如Form1, 用" >" 键 移 动 到 
"Available forms" 栏 中, 并 在 程 序 需 调 用 该 窗 体 
处, 加 入 下 列 语 句:
 
TForm1 *myform=new TForm1(this);
 
myform- >ShowModal();
 
delete myform;
 窗 体Form1 仅 是 在 
需要 调 用 时 才 调 入 内 存,调 用 完 成 后, 即 用delete 
清 除 出 内 存。这 样 可 减 少 程 序 对 内 存 资 源 的 占 
用。
三、遍 历 窗 体 控 件 的 方 法
 要 访 问 或 修 改 窗 体 上的 
控 件, 方 法 很 简 单, 以TEdit 为 例 子:
 
Edit1- >Text="";
 
Edit2- >Text="";
 但 如 果 窗 体 上 有 十 
来个 像Edit1 这 样 的 控 件, 需 要 进 行 相 同 的 初 始 
化, 用 上 面 的方 法 一 个 一 个 地 进 行, 岂 不 麻 烦 ! 
所 以 有 必 要 掌 握 遍 历窗 体 控 件 的 方 法。 在 介 绍 
该 方 法 之 前, 让 我 们 先了 解 一 下 窗 体Form 
的Components 和Controls 属 性。 参 见 表 一。
 
表 一
 
属性 
类型 说明
 
ComponentCount 
Int 目前Form上各类
 
控件的总数
 
Components TCompont* 
目前Form上指向
 
所有控件的数组
 
目前Form上指向
 
所有控件的数组
 
ControlCount
 
Int
 
目前Form上某一子
 
区域上各类控件的总数
 
Controls 
TControl*
 
目前Form上指向某一子
 
区域上所有控件的数组
 以 图 一 为 
例(图 略) 说 明,Form1 的ComponentCount=6, 而Panel1 的ControlCount=4.,
 其 中: 数 组 
对象
 
Components[0] Panel1
 
Components[1] Label1
 
Components[2] Edit1
 
Components[3] Label2
 
Components[4] Edit2
 
Components[5] 
Button1
 
数 组 
对 象
 
Controls[0] 
Label1
 
Controls[1] 
Edit1
 
Controls[2] 
Label2
 
Controls[3] 
Edit2
 下 面 这 段 代 码 完 成 了 对Panel1 
上 所 有TEdit 控 件 的 遍 历 初 始 化。 读 者 稍 加 修 改, 
即 可 对 其它 控 件 进 行 遍 历。 这 里 有 一 个 小 技 巧, 
我 们 把 需 要 进 行 初始 化 的 控 件 放 置 在 了 一Panel1 
上, 与 不 需 要 初 始 化 的 控 件区 分 开 来, 这 样 便 于 
编 程。
 
AnsiString namestring="TEdit";
 
for(int i=1;i< Panel1- > ControlCount;i++)
 
{
 
if(Panel1- > Controls[i]- > ClassNameIs(namestring))
 
{
 
TEdit *p=dynamic_cast < TEdit* > (Panel1- >Controls[i]);
 
P- >Text="";
 
}
 
}
四、不规则窗口
 1.在窗口定义中,加入HRGN hWndRgn;
 2.在TForm::OnCreate()消息函数最后,加入下面的代码:
 hWndRgn=::CreateEllipticRgn(0,0,Width,Height);
 ::SetWindowRgn(hWndRgn,TRUE);
 3.设置TForm的属性为无标题,无边框。
 4.编译连接应用程序,就可以看到一个椭圆形窗口。
五、MDI Form
 1.Application->CreateForm(__classid(Tjjcginput), 
&jjcginput);
 后不用在使用显示Form的语句就可以显示出来了。
 2.form 的onclose 事件必须用下面语句释放空间:
 void __fastcall TMDIChild::FormClose(TObject *Sender, 
TCloseAction &Action)
 {
 Action = caFree;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -