C++ Builder 初学问与答(二)
2008-03-08 21:32:48 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簻椤掋垺銇勯幇顖毿撻柟渚垮妼椤粓宕卞Δ鈧獮濠勭磽閸屾艾鈧懓顫濋妸鈺佺疅缂佸顑欓崥瀣煕椤愵偅绶氱紓鍐╂礋濮婂宕掑▎鎴М濠电姭鍋撻梺顒€绉甸幆鐐哄箹濞n剙濡肩紒鎰殜閺屸€愁吋鎼粹€茬敖婵炴垶鎸哥粔鐢稿Φ閸曨垰鍐€妞ゆ劦婢€濞岊亪姊虹紒妯诲蔼闁稿海鏁诲濠氭晲婢跺﹤宓嗛梺缁樺姈缁佹挳宕戦幘璇叉嵍妞ゆ挻绋戞禍鐐叏濡厧浜鹃悗姘炬嫹

核心提示: 上一篇:C++ Builder 初学问与答(一) 2.文本输入组件11)问:假如要实现文本输入,在C++Builder中应该怎么办?
上一篇:C++ Builder 初学问与答(一) 2.文本输入组件
11)问:假如要实现文本输入,在C++Builder中应该怎么办?

用来确定Memo组件中显示文本的对齐方式。
WordWrap
确定文本到达右边界时是否自动换行
WantReturn
确定用户是否可以在文本中插入回车符。
WantTabs
确定用户是否可以在文本中插入Tab字符。
属性ScrollBar是一个常见的属性,它确定着滚动组件滚动条的行为。ScrollBar有四种可能的取值: SsNone
表示没有滚动条;
ssHorizonal
表示只有水平滚动条;
ssVertical
表示只有垂直条;
SsBoth
表示既有水平滚动条也有垂直滚动条。

Lines->Add(“我来了”); 要寻找Memo中的某一行,可以使用Lines->Strings[n]的形式,不过要注重Lines的字符串是从0开始的,所以在与Memo中的实际行号对应时,行号需要减一。 18)问:假如我要实现文本的剪切、复制和粘贴,应该怎么办? 答:Memo组件提供了三个用来完成剪切、复制和粘贴的方法。CutToClipboard用来把Memo组件中被选中的文本剪切到剪切板。 CopyToClipboard用来把Memo组件中被选中的文本复制到剪切板。 PasteFromClipboard用来把剪切板的内容粘贴到Memo组件中光标所在的位置。 19)问:前面讲了几个控件,能把他们综合起来编制一个程序吗? 答:好的,就利用刚才已经放好的组件来编写一个用户姓名录入和显示的程序。 这个程序将实现当在编辑框中输入文本并按下Enter键后,文本就被增加到Memo组件中。因此需要给编辑框组件增加事件处理过程。 当用户按下Enter键时产生了OnKeyPress事件,所以应该编写这个事件的处理过程。 选中组件Edit1, 在对象观察器上选择Events标签页, 双击Edit1的事件OnKeyPress,C++Builder将自动生成这个事件处理程序的代码模板。在里面编写如下代码:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key){AnsiString Temp("用户姓名:");if((Key==0xD) && !Edit1->Text.IsEmpty()) Memo1->Lines->Add(Temp+Edit1->Text);}

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key){ AnsiString Temp="用户姓名:"; if((Key==VK_RETURN) && Edit1->Text!="") Memo1->Lines->Add(Temp+Edit1->Text);} 当用户输入文本并且按下回车键后,第三条语句将Temp和用户输入的字符串合并后加到Memo控件文本的末尾。 现在,点击速度条上Run的按钮,运行这个程序,在编辑框中输入一个用户姓名,然后按回车键。用户的姓名就被自动加到了文本框的末尾。 用鼠标在Memo控件中点击一下,将焦点移动到它里面,然后按下Alt+N加速键,可以看出,标签控件将焦点移动到了编辑框中。

答:只要能够把设置缺省字符格式DefAttributes、设置选中字符格式SelAttributes与设置段落Paragraph三个属性把握好就差不多了,因为她的其它属性与Memo差不多。 缺省字符格式DefAttributes、设置选中字符格式SelAttributes是TtextAttributes对象,它是用来控制字符格式的,它的Color、Height、Name、Size、Style、Pitch等性性和字体Tfont对象差不多,当然还有一些象CharSet、ConsistentAttributes、Protected等一些不太常用的属性。 设置段落Paragraph是TparaAttributes对象,用来设置段落的对齐Alignment、首行缩进FirstIndent、左缩进LeftIndent、右缩进RightIndent、编号方式Numbering、制表位Tab等属性。 段落的对齐Alignment的取值是taLeftJustify左对齐、taCenter居中和taRightJustify右对齐。 编号方式Numbering,用来设置编号方式,取nsNone表示没有编号,取nsBulet表示采用悬挂缩进方式编号。 制表位Tab用来设置某个制表位所在的位置。其声明为:_property int Tab[Byte Index]。第一个制表位为Tab[0],依次类推。 注:本文的所有例程都在BCB6、WINXP下编译通过。 [待续]

赞助商链接