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

📄 155.htm

📁 水木清华的BBS文章
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<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 + -