📄 155.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="7.htm">上一层</a>][<a href="156.htm">下一篇</a>]
<hr><p align="left"><small>发信人: seader (海哥), 信区: Delphi <br>
标 题: Delphi中控件的使用 <br>
发信站: BBS 水木清华站 (Fri Oct 9 21:36:13 1998) WWW-POST <br>
<br>
一 SAVEDIALOGE 使用 <br>
<br>
sd1.DefaultExt:='m3u'; <br>
sd1.filter:='*.M3U|*.m3u|全部档案|*.*'; <br>
if sd1.Execute then <br>
begin <br>
//程序 <br>
//sd1.filename为文件名 <br>
<br>
end; <br>
<br>
二 Splitter Bar 的使用 <br>
<br>
Splitter Bar <br>
<br>
诸如窗体左边使用TREEVIEW,右边使用MEMO,可以使用Splitter Bar 来调节左右比例 <br>
具体做法如下: <br>
1.设置TreeView的Align属性为alLeft. <br>
2.从FORM窗体上剪切(Ctrl-X)出MEMO控件 <br>
3.增加一个Panel1控件,并将其Align属性为alClient. <br>
4.将MEMO贴回Panel1上,并将其Align属性为alClient. <br>
5.添入SPLITTER控件 <br>
6.在SPLITTER的ONMOVE事件中写入 <br>
treeview1.width:=splitter1.left; <br>
三 TREEVIEW的使用 <br>
<br>
基本信息: <br>
TreeView 是一个显示树型结构的控件,每一个节点都是一个新类, <br>
使用具有代表性 <br>
每个节点都有四个值: <br>
TEXT:显示文字 Image Index:显示图形序号 <br>
Selected Index: <br>
State Index: <br>
<br>
(1)建立目录项(本例中使用的TREEVIEW名称为:TvwTips) <br>
<br>
增加根目录下的节点:(节点) <br>
var <br>
CatNode : TTreeNode; //先建立一个TREEVIEW使用的子对象 <br>
begin <br>
TvwTips.SetFocus; //将焦点置到这个TREEVIEW控件上 <br>
TvwTips.SetFocus; //将焦点置到这个TREEVIEW控件上 <br>
{ 在根标题下建立一个新的子标题 } <br>
CatNode := TvwTips.Items.AddChild( <br>
TvwTips.Items.GetFirstNode,'New Category' ); <br>
CatNode.ImageIndex := 1; <br>
CatNode.SelectedIndex := 2; <br>
CatNode.EditText; { 允许用户改变这个标题 } <br>
end; <br>
<br>
增加下一级目录(内容): <br>
var <br>
ParentNode, TipNode : TTreeNode; //先建立TREEVIEW使用 <br>
的子对象 <br>
VersionNum : Integer; <br>
begin <br>
TvwTips.SetFocus; //将焦点置到这个TREEVIEW控件上 <br>
VersionNum := TMenuItem( Sender ).Tag; { Ver num of new tip } <br>
ParentNode := TvwTips.Selected; { 取出当前的选中节点 } <br>
if ParentNode.Level = nlTip then{ Parent cannot be a tip node } <br>
ParentNode := TvwTips.Selected.Parent; <br>
<br>
TipNode := TvwTips.Items.AddChildObject( ParentNode,'New <br>
Subject',Pointer( VersionNum ) ); <br>
TipNode.ImageIndex := 3; { Normal tip bitmap } <br>
TipNode.SelectedIndex := 4; { Highlighted tip bitmap } <br>
TipNode.MakeVisible; { Move new tip node into view } <br>
TipNode.EditText; { Immediately allow user to edit subject } <br>
EnableTreeViewFunctions( TipNode.Level ); <br>
RtfTip.Clear; <br>
RtfTip.Modified := False; <br>
end; <br>
<br>
(2)说明 <br>
TvwTips.Items.GetFirstNode 返回TREEVIEW的第一个节点,函数类型为 <br>
:TTreeNode <br>
TvwTips.Items.Count 返回当前TreeView的全部节点数,整数 <br>
TvwTips.Selected.Level 返回当前选中节点的在目录树中的级别, <br>
根目录为0 <br>
TvwTips.Selected.Parent 返回当前选中节点上级节点,函数类型为 <br>
:TTreeNode <br>
<br>
四 打印MEMO与LISTBOX的内容 <br>
<br>
这里写一个可以打印TString的函数: <br>
<br>
<br>
uses Printers; <br>
<br>
procedure PrintStrings(Strings: TStrings); <br>
var <br>
Prn: TextFile; <br>
i: word; <br>
begin <br>
AssignPrn(Prn); <br>
try <br>
Rewrite(Prn); <br>
try <br>
for i := 0 to Strings.Count - 1 do <br>
writeln(Prn, Strings.Strings[i]); <br>
finally <br>
CloseFile(Prn); <br>
end; <br>
except <br>
on EInOutError do <br>
MessageDlg('Error Printing text.', mtError, [mbOk], 0); <br>
end; <br>
end; <br>
<br>
<br>
<br>
<br>
在打印的时候,可使用: <br>
PrintStrings(Memo1.Lines); <br>
或 <br>
PrintStrings(Listbox1.Items); <br>
打印. <br>
<br>
五 关于MEMO的UNDO功能 <br>
<br>
在平常,你可以在MEMO中使用Ctrl-Z进行UNDO操作,但在程序中, <br>
你可以使用: <br>
Memo1.Perform(EM_UNDO, 0, 0); <br>
进行UNDO操作. <br>
当你使用一个enable/disable的菜单时,你可以使用: <br>
Undo1.Enabled := Memo1.Perform(EM_CANUNDO, 0, 0) 0; <br>
<br>
六 两个button共用同一个OnClick <br>
<br>
我有两个button,共用一个method,想要在method中判别是那个OnClick 应如何 <br>
作到? 谢谢! <br>
<br>
<br>
请以 Sender 判断. 据我所知有两个方法可以办到: <br>
<br>
<br>
1. 利用 if Sender = YourComponentName 一个个去判断 <br>
<br>
2. 每个元件(TComponent以下)都有一个 Tag 属性, 如果在设计阶段各别指 <br>
定一个数字给它们, <br>
就可以根据这个属性识别出不同的元件 <br>
<br>
<br>
以下有一个例子:(Delphi 1.0) <br>
<br>
<br>
1. File | New Project <br>
<br>
2. 在 Form 中放置两个 Button <br>
<br>
3. 在 Object Inspector 中, 对於 <br>
<br>
Button1 的 Tag 属性设为 1 <br>
Button2 的 Tag 属性设为 2 <br>
<br>
<br>
<br>
4. 以 Shift + MouseButton, 同时选取 Button1 与 Button2 <br>
<br>
5. 在 Object Inspector 中, OnClick 事件栏填入: TwoButtonClick <br>
<br>
6. 在以下的 TForm1.TwoButtonClick(Sender: TObject); Begin..End; 之 <br>
间填入下列程式 <br>
<br>
procedure TForm1.TwoButtonClick(Sender: TObject); <br>
begin <br>
(* 第一种判断方式 *) <br>
if Sender = Button1 then <br>
ShowMessage('Via Name -- Button1 Click') <br>
else if Sender = Button2 then <br>
ShowMessage('Via Name -- Button2 Click'); <br>
<br>
(* 第二种判断方式 *) <br>
if Sender is TComponent then <br>
begin <br>
<br>
case TComponent(Sender).Tag of <br>
1: ShowMessage('Via Tag -- Button1 Click'); <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -