Delphi学习第七天

string类型和动态数组类型都是系统自管理的,不用担心内存泄漏。

系统事件中的参数Sender: TObject,是指触发该事件的控件,但Sender是TObject类型的,在实际使用时需要强制向下转型。

--例如有多个Button,以及一个用于显示Label, 且这些按钮的功能都是一样的,比如说将自己的caption赋给Label,则可以用Sender来实现复用按钮事件
--即用Sender来判断是哪个按钮,再赋值,主要代码如下:
procedure TForm1.btn1Click(Sender: TObject);
begin
  --判断是哪个按钮可用 Sender = btn1(即按钮变量名)
  Label.Caption := TButton(Sender).Caption;  --TButton(Sender):将Sender强制向下转型为TButton类型
end;
--最后将其它按钮的OnClick事件都设置为btn1Click就行了。

窗口Form中BorderStyle设置为Dialog,则用户不能改变窗口大小

控件及其重要的属性:

1,MainMenu:主菜单控件,不可视,一个窗口只有一个主菜单,但可以有多个弹出菜单(右键触发的PopMenu)。
    Items:保存的菜单项(菜单项的类型是TMenuItem),点击可以设置各种菜单项;
    Image:指定一个绑定的ImageList(在win32下)
    菜单项中的属性:caption:名称(Caption为'-'时,在菜单上显示的就是一条横线);   
                  Bitmap:图标    
                  shortcut:快捷键(不同于&定义的快捷键,这里的快捷键可以做到在按钮没显示出来是就能按到,而&定义的需要先看到这个按钮,快捷键才有效)
                  选中菜单项,右键选择Create SubMenu可以新建一个子菜单
                  ImageIndex:图标序号,需要先设置Mainmenu中的Image属性
                  Checked:该菜单项是否被点击过,为true时菜单项前会有一个√
                  AutoCheck:为True时自动设置Checked属性
                  Visible:为True时显示控件,为False时不显示控件
2,PopMenu: 弹出菜单控件,不可视,对于大部分控件都有一个PopMenu属性,即在该控件上点击右键会显示选项。里面的属性和主菜单属性的含义一样。
     重要的事件:OnPopUp:当弹出该PopMenu时触发。
     TPopMenu类有一个PopupComponent属性,表示是在哪个控件上触发的Popup事件。
        还有一个方法PopUp(X, Y:Integer);用于设置弹出菜单的位置。例如设置菜单在当前鼠标位置弹出,主要代码如下
      var position: TPoint;
      position := Mouse.CursorPos;
      PopMenu.PopUp(position.X, position.Y);

3,ImageList:图像列表控件,不可视,用于保存多个BMP\PNG\ICO文件供其他组件使用
4,Label控件:标签。用于显示短文本。
    重要属性:Caption:要显示的文本
             Color:背景颜色
             Transparent:为True时将忽略Color属性,使背景透明
             AutoSize:为True时,当文本长度大于Width时会自动增加Label长度
             WordTrap:为True时,当中文文本长度大于Width时会换行,配合height和Width可以实现竖向显示文本
5,Edit控件:编辑框。
  重要属性:Text:编辑框的文本
           SelText:编辑框中被选中的文本
           ReadOnly:只读(大部分编辑控件都有的属性)
           OnChange():当编辑框中文本发生变化时触发
6, Memo控件:多行的编辑框
  重要属性:Lines:Memo中的一行行文本
            相关方法:1,Lines.Add(String):添加一行文本;
                     2,Lines.Clear:清空Memo中所有文本;
                     3,Lines.Delete(Col):删除第Col行文本(从0开始)
                     4,Lines.LoadFromFile(FilePath):从文件中获取数据
                     5,Lines.SaveToFile(FilePath):保存到文件中
           scollBars:滚动条,ssVertical:垂直滚动
           SelectAll();选中memo中所有的文本,但前提是焦点(setFocus)在memo上(点击SpeedButton时焦点不会出现在该按钮上)
           SelText:选中的文本
           将选中文本复制到剪切板:
             Uses Clipbrd;
             Clipboard.AsText := memo.SelText;
           CopyToClipboard:将memo中的文本复制到剪切板
           PasteFromClipboard:将剪切板中的文本粘贴到memo中

7,SpeedButton:可以加图标,点击时焦点不发生改变
8,Button:
    重要属性: ModalResult:showModal的返回值,有mrOK, mrCancel, mrYes, mrNo, mrTryAgain等值
              Default: 键盘输入Enter时默认点击该按钮
              Cancel: 键盘输入Esc时默认点击该按钮
              Click(): 相当于点击了该按钮
9,CheckBox:复选框
    重要属性:  alignment:设置复选框相对于提示文本的位置
               Checked:该复选框是否被选择,只有True或false(一般情况下只有选中和没选中,而当设置AllowGray=True时,状态(state)的变化是没选中(cbUnChecked)——》部分选中(cbGrayed)——》选中(cbChecked))
               OnClick:当Checked属性发生变化时触发
10,RadioButton:单选框,在一个容器中的所有单选框只有一个可以是选中状态的(通常用一个GroupBox装相关联的单选框)。
11, RadioGroup:单选组,包含多个单选框
      重要属性:Items:选项的文本,一行就是一个选项
               ItemIndex:选中的选项的序号(从0开始),如果组中没有选中的,则为-1
               Columns:组里Items分几列显示
12, ListBox:选项组
      重要属性:Items:选项的文本,一行就是一个选项
               Items.Count:有多少个选项
               Count:有多少个选项
               SelCount:选中的有多少个
               Selected:一个数组,保存的是Items中被选中的情况,选中为True
               ItemIndex: 默认选中的选项的序号(从0开始),如果组中没有选中的,则为-1
               multiSelect:是否允许多选(按Ctrl多选)
               Columns:
               Sorted:是否要按字符串排序Items
               添加和清除数据同Memo控件
               DeleteSelected;删除选中行
 13, ComboBox:下拉列表
      重要属性:Items、ItemIndex
              DropDownCount:下拉时显示多少条选项
              Style:
                   csDropDownList:只能选不能输入
                   csSimple:可以选也可以输入
 14, Dialogs:各种对话框,如打开文件对话框,主要用于获取文件路径,操作文件以后再学。
      Filter:Dialog的过滤器,类似于 *.txt, *.jpg之类的
      OpenDialog:打开文件夹对话框,使用如下:
         if OpenDialog.Execute then
            sFilePath := OpenDialog.FileName;
      SaveDialog:保存数据到文件
        if SaveDialog.Execute then    --如果有选择文件
            memo.Lines.SaveToFile(SaveDialog.FileName);    --将Memo中的文本保存到选中的文件中
      FontDialog:字体样式选择对话框
        if FontDialog。Execute then
            mmo.Font := FontDialog.Font;
      ColorDialog:颜色对话框:Color
      
窗口(Form)在创建完所有控件后会触发OnCreate事件,可以在这个事件里初始化组件。
上一篇:使用Tenorshare UltData for Mac如何修复iPhone,iPad,iPod Touch的iOS系统


下一篇:SQL Server 非聚集索引的覆盖,连接,交叉和过滤 <第二篇>