您现在的位置是:首页 >

生活就是点点滴滴 新手知识大放送:Delphi入门点点滴滴

火烧 2022-05-31 15:50:11 1046
新手知识大放送:Del hi入门点点滴滴 ==系统应用篇==  A.Del hi自代了大量的常用控件 如Del hi 就有一百多了 而今年出的Del hi 更是Del hi 的 倍 这么多控件 就是在

新手知识大放送:Delphi入门点点滴滴  

生活就是点点滴滴 新手知识大放送:Delphi入门点点滴滴
==系统应用篇==  A.Delphi自代了大量的常用控件 如Delphi 就有一百多了 而今年出的Delphi 更是Delphi 的 倍 这么多控件 就是在 * 的分辨率下也无法全部显示他们的组件面板 而每次要按那两颗小按钮来显示更多的面板 真是非常不方便!但通过添加下面那一个注册表键值就能实现组件面板自动展开   [HKEY_CURRENT_USERSofareBorlandDelphiX Extras]   AutoPaletteSelect =   (注 X 表示你的Delphi的版本号 如果没有Extras主键则新建即可 下同)    B.每次新建窗体 然后设置其字体 大小……真是好麻烦的!那就再添加一个以下的键值 让系统自动来设置吧   [HKEY_CURRENT_USERSofareBorlandDelphiX FormDesign]   DefaultFont = 宋体 _   (注 _表示空格 也可以用Bold(粗体)等代替)    C.自定义工作环境 让它更加适合自己   设置工具栏 在Delphi的工具栏右键单击 选Customize 然后挑选需要的按钮拖到工具上 把不要的拖出来 我常用的是 Standard工具栏下的Open Open Project Save Save All Undo Redo Debug工具栏下的Pause Add Watch Program Reset Run Desktop工具栏下的Save Current Desktop Set Debug Desktop Component Palette工具栏   设置窗口布局 为了能跟高效的编写程序 合理的布置各个窗口是很重要的 我常用的窗口有 Object Inspector Project Manager(View|Project Manager) Watch List(Run|Add Watch ) 具体的停放位置如图       [图 ]   设置好各个窗体后按Desktop工具栏上的Save Current Desktop按钮保存   ?设置显示颜色 让代码的颜色更符合自己的习惯 有利于编写时思维的清晰 Tools|Editor Options打开Editor Properties 选Color标签页 设置代码颜色 以下仅解释一下几个常用的   Whitespace 空白处 即背景   Comment 注释   Reserved word 保留字   String 字符串   Number 数字   Execution Point 正在执行的当前行(即F 步入时所到达的那一行)   Enabled break 断点   Error line 错误发生行     D.掌握一些Delphi编程中的快捷键 能够极大程度的提高效率 还不会让你因为过多无聊的设置等而感到厌烦 现在如果不用这些快捷键 我会很不适应这样的编程的!以下我就介绍一下我常用的几个快捷键   Esc : 选择当前选中组件的容器(通常是Panel GroupBox或Form等)   Ctrl+方向键 将所选组件移动一个像素   Ctrl+Shift+方向键 将所选组件移动一大格(类似Fireworks中按住Shift再用方向键移动时的效果)   Shift+方向键 调整选中组件的大小 每次一像素   Shift+选中组件 按住Shift键再用鼠标点击组件 可以同时选择多个组件   Ctrl+鼠标左键 在procedure中掉用其他的函数(如一个自定义的过程) 在这个调用处按住Ctrl会发现当鼠标移上去的时候变成了一个类似超链接的格式 鼠标单击就能直接转到所调用的此函数的实现部分 这个功能我可是用的最多了 让我找模块变得非常方便!  Ctrl+Shift+C 在一个对象中声明了一个方法 然后把光标放到它的上面 按下Ctrl+Shift+C就可以为他的实现建立一个基本框架 如   TForm = class(TForm)  private  { Private declarations }  public  { Public declarations }  procedure Mine;  end;  把光标放到procedure Mine这行 按下Ctrl+Shift+C 下面这段代码将自动插入到单元中   procedure TForm Mine;  begin    end;    ==窗体操作篇==  在有多个窗体的程序中 Delphi默认是将它们在程序启动时全部创建(只是都隐藏了 只显示一个主窗体) 这样 那些暂时不必要启动的窗体就占用了许多内存空间 所以我们需要在菜单Project|Options 的Forms标签页下 将那些暂时不要启动的窗体从 Auto create forms 下转移到 Available forms 中 这样 这些窗体的创建和释放就需要代码来实现了   A.两种创建窗体方法之比较 对于这些非自动创建的窗体 我们必须在Show之前Creat(Self)或Create(Application) 将其创建 如Form Creat(Self)和Form Create(Application) 可是 它们两个到底有什么区别呢?其实两者区别不大   但如果Owner是属于别的窗口或控件的话 当它的Owner被释放的时候 该Owner所拥有的也会被释放 关键的区别是由谁来管理该窗体的资源 用第一种方法创建 该窗体的资源由编程者来负责管理 用第二种方法创建 该窗体的资源由Application来管理     B.几种窗体的释放方法 既然是为了节约内存 那么用完了的窗体就应该 搬出 内存 在这里我列举几个大同小异的方法   ( )  procedure TForm Button Click(Sender :TObject);  begin     if Form = nil then  Form :=TForm Create(Application);  Form ShowModal;     end;    procedure TForm close(Sender: TObject; var Action: TCloseAction);  begin  ModalResult := mrNone;  Action := caFree;  Form := nil;  end;  ( )  procedure TForm Button Click(Sender :TObject);  begin  if not Assigned(Form ) then  begin  Application CreateForm(TForm Form );  try  Form ShowModal;  finally  Form Free;  Form := nil;  end;  end  else  Form ShowModal;  end;  ( )  procedure TForm Button Click(Sender :TObject);  begin  Form Close;  Form Release;  end;    ==控件使用篇==  A.大名鼎鼎的RXLib控件包是由三位俄罗斯高手编写的 非常的出色!不过 内容太多了 要用好也不容易 我在此拿RxRichEdit简单地说几点   好多人都问RxLib怎么安装 似乎的确有点复杂 呵呵 所以我也顺便说一下   运行rxinst exe将RxLib先安装到Program FilesBorlandDelphi (或 )RX文件夹下 然后打开Delphi 选FileOpen 将RXCTL DPK RXDB DPK RXBDE DPK分别打开后按pile 继续打开 DCLRX DPK DCLRXDB DPK和DCLRXBD DPK 将这三个分别按pile后按install就可以了: )  ?AllowObjects属性 Win 下默认设置为True 右键菜单没有问题 但设为False时快捷菜单会连续出现两次 Win 下 设为True时会使右键菜单无法弹出 而False时却显示正常 所以 为了系统的兼容性 需要判断当前OS版本   procedure TFormMain FormCreate(Sender: TObject);  var  OSVI:OSVERSIONINFO;     begin  OSVI dwOSVersionInfoSize:=sizeof(OSVERSIONINFO);  GetVersionEx(OSVI);  case OSVI dwPlatformId of   :RxRichEdit AllowObjects:=true;   :RxRichEdit AllowObjects:=false;  end;     end;  但我不知这个属性为什么会有这么一个问题 还望高手指点   ?OnURLClick事件 RXRichEdit有自动将网页地址转为超链接格式 但具体的行为还是要自己写代码的 不然这些地址就成了个空壳了   procedure TFormMain RXRichEdit URLClick(Sender: TObject; const URLText: String; Button: TMouseButton);  begin  if Button = mbLeft then  ShellExecute(Handle nil PChar(URLText) nil nil SW_SHOW);  end;    B.为了节约内存 优化运行 我们总是动态创建组件 可当用完之后 如果不及时彻底的将其从内存中清理出去 那就有违我们的初衷了 可怎么 杀死 所创建的组件? 比如创建了一个Edit控件 现在想让它消失 但用Edit Free后 调用Edit Text却仍然存在……我们知道 光Free是不行的 这只是将Edit所指向的内存空间释放了 但是指针并没有设定为nil 当调用Edit Text时 Delphi仍然会根据Edit提供的指针访问已经释放的内存区域 所以会产生Access Violation 错误 所以我们需要在Free后Edit:=nil或者FreeAndNil(只在Delphi 下有效)将指针nil掉 才能保证以后的正常运行     C.将各控件的提示文本显示于状态行上 这个可用Application的OnHint事件 但由于Application为不可件对象 因此可以采用如下方法      public  procedure DisplayHint(Sender: TObject); //声明一个方法用于显示提示文本  end;     procedure TForm DisplayHint(Sender: TObject); //实现部分  begin  StatusBar SimpleText := GetLongHint(Application Hint);  end;    procedure TForm FormCreate(Sender: TObject);  begin  Application OnHint := DisplayHint;  end;  这样显示在状态栏里的文本和提示框(就是那个自动出现的黄色小框)里的是一样的 如果想要在状态栏里的提示文本更加详细怎么办?其实 只要控件的Hint属性这样写 MyHint|It s just a MyHint! 就可以让 | 前的内容显示在提示框(Help Hint box)里 | 的后面的内容显示在状态栏里了     D.ListView使用中的一些要点 以下以一个两列的ListView为例   →增加一行   with ListVi lishixinzhi/Article/program/Delphi/201311/8398  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码