`

DELPHI编程经验小结

阅读更多

 (1).按下ctrl和其它键之后发生一事件。  
          procedure   TForm1.FormKeyDown(Sender:   TObject;   var   Key:   Word;  
              Shift:   TShiftState);  
          begin  
              if   (ssCtrl   in   Shift)   and   (key   =67)   then  
                    showmessage("keydown   Ctrl+C");  
          end;  
  (2).Dbgrid中用Enter键代替Tab键.  
        procedure   TForm1.DBGrid1KeyPress(Sender:   TObject;   var   Key:   Char);  
        begin  
            if   Key   =   #13   then  
            if   ActiveControl   =   DBGrid1   then  
            begin  
                  TDBGrid(ActiveControl).SelectedIndex   :=   TDBGrid(ActiveControl).SelectedIndex   +   1;  
                  Key   :=   #0;  
            end;  
        end;  
  (3).Dbgrid中选择多行发生一事件。  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
          i:integer;  
          bookmarklist:Tbookmarklist;  
          bookmark:tbookmarkstr;  
          begin  
              bookmark:=adoquery1.Bookmark;  
              bookmarklist:=dbgrid1.SelectedRows;  
              try  
              begin  
                  for   i:=0   to   bookmarklist.Count-1   do  
                  begin  
                      adoquery1.Bookmark:=bookmarklist;  
                      with   adoquery1   do  
                      begin  
                          edit;  
                          fieldbyname("mdg").AsString:=edit2.Text;  
                          post;  
                      end;  
                  end;  
              end;  
              finally  
              adoquery1.Bookmark:=bookmark;  
              end;  
          end;  
  (4).Form的一个出现效果。    
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
          r:thandle;  
          i:integer;  
          begin  
              for   i:=1   to   trunc(width/1.414)   do  
              begin  
                  r:=CreateEllipticRgn(trunc(width/2)-i,trunc(height/2)-i,trunc(width/2)+i,trunc(height/2)+i);  
                  SetWindowRgn(handle,r,true);  
                  Application.ProcessMessages;  
                  sleep(1);  
              end;  
          end;  
  (5).用Enter代替Tab在编辑框中移动隹点。  
          procedure   TForm1.FormKeyPress(Sender:   TObject;   var   Key:   Char);  
          begin  
              if   key=#13   then  
                  begin  
                      if   not   (Activecontrol   is   Tmemo)   then  
                      begin  
                          key:=#0;  
                          keybd_event(vk_tab,mapvirtualkey(vk_tab,0),0,0);  
                      end;  
                  end;  
          end;  
  (6).Progressbar加上色彩。  
          const  
          {$EXTERNALSYM   PBS_MARQUEE}  
          PBS_MARQUEE   =   08;  
          var  
              Form1:   TForm1;  
          implementation  
          {$R   *.dfm}  
          uses  
          CommCtrl;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              //   Set   the   Background   color   to   teal  
              Progressbar1.Brush.Color   :=   clTeal;  
              //   Set   bar   color   to   yellow  
              SendMessage(ProgressBar1.Handle,   PBM_SETBARCOLOR,   0,   clYellow);  
          end;  
  (7).住点移动时编辑框色彩不同。  
          procedure   TForm1.Edit1Enter(Sender:   TObject);  
          begin  
              (sender   as   tedit).Color:=clred;  
          end;  
          procedure   TForm1.Edit1Exit(Sender:   TObject);  
          begin  
              (sender   as   tedit).Color:=clwhite;  
          end;  
  (8).备份和恢复  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              if   OpenDialog1.Execute   then  
              begin  
                  try  
                      adoconnection1.Connected:=False;  
                      adoconnection1.ConnectionString:="Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=master;Data   Source=FRIEND-YOFZKSCO;"+  
                      "Use   Procedure   for   Prepare=1;Auto   Translate=True;Packet   Size=4096;Workstation   ID=FRIEND-YOFZKSCO;Use   Encryption   for   Data=False;Tag   with   column   collation   when   possible=False";  
                      adoconnection1.Connected:=True;  
                      with   adoQuery1   do  
                      begin  
                          Close;  
                          SQL.Clear;  
                          SQL.Add("Backup   DataBase   sfa   to   disk   ="""+opendialog1.FileName+"""");  
                          ExecSQL;  
                      end;  
                  except  
                      ShowMessage("±?·Y꧰ü");  
                  Exit;  
                  end;  
              end;  
              Application.MessageBox("1§?2?ú£?êy?Y±?·Y3é1|","ìáê?",MB_OK   +   MB_ICONINFORMATION);  
          end;  
          procedure   TForm1.Button2Click(Sender:   TObject);  
          begin  
              if   OpenDialog1.Execute   then  
              begin  
                  try  
                      adoconnection1.Connected:=false;  
                      adoconnection1.ConnectionString:="Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=master;Data   Source=FRIEND-YOFZKSCO;"+  
                      "Use   Procedure   for   Prepare=1;Auto   Translate=True;Packet   Size=4096;Workstation   ID=FRIEND-YOFZKSCO;Use   Encryption   for   Data=False;Tag   with   column   collation   when   possible=False";  
                      adoconnection1.Connected:=true;  
                      with   adoQuery1   do  
                      begin  
                          Close;  
                          SQL.Clear;  
                          SQL.Add("Restore   DataBase   sfa   from   disk   ="""+opendialog1.FileName+"""");  
                          ExecSQL;  
                    end;  
                except  
                    ShowMessage("???′꧰ü");  
                    Exit;  
                end;  
            end;  
            Application.MessageBox("1§?2?ú£?êy?Y???′3é1|","ìáê?",MB_OK   +   MB_ICONINFORMATION);  
          end;  
  问题点数:0、回复次数:206Top
1 楼delphiyesterday(郑康益)回复于 2003-06-05 14:39:33 得分 0
(9).查找局域网上的sqlserver报务器。  
          uses   Comobj;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
          SQLServer:Variant;  
          ServerList:Variant;  
          i,nServers:integer;  
          sRetValue:String;  
          begin  
              SQLServer   :=   CreateOleObject("SQLDMO.Application");  
              ServerList:=   SQLServer.ListAvailableSQLServers;  
              nServers:=ServerList.Count;  
              for   i   :=   1   to   nservers   do  
              ListBox1.Items.Add(ServerList.Item(i));  
              SQLServer:=NULL;  
              serverList:=NULL;  
          end;  
  (10).窗体打开时的淡入效果。  
          procedure   TForm1.FormCreate(Sender:   TObject);  
          begin  
              AnimateWindow   (Handle,   400,   AW_CENTER);  
          end;  
  (11).动态创建窗体。  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              try  
                  form2:=Tform2.Create(self);  
                  form2.ShowModal;  
              finally  
                  form2.Free;  
              end;  
          end;  
          procedure   TForm1.FormClose(Sender:   TObject;   var   Action:   TCloseAction);  
          begin  
              action:=cafree;  
          end;  
          procedure   TForm1.FormDestroy(Sender:   TObject);  
          begin  
              form1:=nil;  
          end;  
  (12).复制文件。  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              try  
              copyfileA(pchar("C:\AAA.txt"),pchar("D:\AAA.txt"),false);  
              except  
              showmessage("sfdsdf");  
              end;  
          end;  
  (13).复制文件夹。  
          uses   shellAPI;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
                lpFileOp:   TSHFileOpStruct;  
          begin  
              with   lpFileOp   do  
              begin  
                  Wnd:=Self.Handle;  
                  wfunc:=FO_COPY;  
                  pFrom:=pchar("C:\AAA");  
                  pTo:=pchar("D:\AAA");  
                  fFlags:=FOF_ALLOWUNDO;  
                  hNameMappings:=nil;  
                  lpszProgressTitle:=nil;  
                  fAnyOperationsAborted:=True;  
            end;  
            if   SHFileOperation(lpFileOp)<>0   then  
            ShowMessage("删除失败");  
          end;  
  (14).改变Dbgrid的选定色。  
          procedure   TForm1.DBGrid1DrawDataCell(Sender:   TObject;   const   Rect:   TRect;  
          Field:   TField;   State:   TGridDrawState);    
          begin  
              if   gdSelected   in   state   then  
              SetBkColor(dbgrid1.canvas.handle,clgreen)  
              else  
              setbkcolor(dbgrid1.canvas.handle,clwhite);  
              dbgrid1.Canvas.TextRect(rect,0,0,field.AsString);  
              dbgrid1.Canvas.Textout(rect.Left,rect.Top,field.AsString);  
          end;  
  (15).检测系统是否已安装了ADO。  
          uses   registry;  
          function   Tform1.ADOInstalled:Boolean;  
          var  
          r:TRegistry;  
          s:string;  
          begin  
              r   :=   TRegistry.create;  
              try  
              with   r   do  
              begin  
                  RootKey   :=   HKEY_CLASSES_ROOT;  
                  OpenKey(   "\ADODB.Connection\CurVer",   false   );  
                  s   :=   ReadString("");  
                  if   s   <>   ""   then   Result   :=   True  
                  else   Result   :=   False;  
                  CloseKey;  
              end;  
              finally  
                r.free;  
              end;  
          end;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
            if   ADOInstalled   then   showmessage("this   computer   has   installed   ADO");  
          end;  
  (16).取利主机的ip地址。  
          uses   winsock;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
          IP:string;  
          IPstr:String;  
          buffer:array   of   char;  
          i:integer;  
          WSData:TWSAdata;  
          Host:PHostEnt;  
          begin  
              if   WSAstartup(2,WSData)<>0   then  
              begin  
                  showmessage("WS2_32.DLL3?ê??ˉ꧰ü.");  
                  exit;  
              end;  
              try  
                  if   GetHostname(@buffer,32)<>0   then  
                  begin  
                      showmessage("??óDμ?μ??÷?ú??.");  
                  exit;  
              end;  
              except  
                  showmessage("??óD3é1|·μ???÷?ú??");  
                  exit;  
              end;  
              Host:=GetHostbyname(@buffer);  
              if   Host=nil   then  
              begin  
                  showmessage("IPμ??·?a??.");  
                  exit;  
              end  
              else  
              begin  
                  edit2.Text:=Host.h_name;  
                  edit3.Text:=chr(host.h_addrtype+64);  
                  for   i:=1   to   4   do  
                  begin  
                    IP:=inttostr(ord(host.h_addr^));  
                    if   i<4   then  
                    ipstr:=ipstr+IP+"."  
                  else  
                    edit1.Text:=ipstr+ip;  
                  end;  
                end;  
                WSACleanup;  
          end;  
  (17).取得计算机名。  
          function   tform1.get_name:string;  
          var     ComputerName:   PChar;     size:   DWord;  
          begin  
                  GetMem(ComputerName,255);  
                  size:=255;  
                  if   GetComputerName(ComputerName,size)=False   then  
                        result:=""  
                  else  
                        result:=ComputerName;  
                  FreeMem(ComputerName);  
          end;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              label1.Caption:=get_name;  
          end;  
  Top
2 楼delphiyesterday(郑康益)回复于 2003-06-05 14:40:53 得分 0
(18).取得硬盘序列号。  
          function   tform1.GetHDSerialNumber:   LongInt;          
          {$IFDEF   WIN32}  
          var    
              pdw   :   pDWord;    
              mc,   fl   :   dword;    
          {$ENDIF}    
          begin    
              {$IfDef   WIN32}    
              New(pdw);    
              GetVolumeInformation("c:\",nil,0,pdw,mc,fl,nil,0);    
              Result   :=   pdw^;  
              dispose(pdw);    
            {$ELSE}  
              Result   :=   GetWinFlags;  
              {$ENDIF}    
          end;  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          begin  
              edit1.Text:=inttostr(gethdserialnumber);  
          end;  
  (19).限定光标移动范围。  
          procedure   TForm1.Button1Click(Sender:   TObject);  
          var  
          rect1:trect;  
          begin  
              rect1:=button2.BoundsRect;  
              mapwindowpoints(handle,0,rect1,2);  
              clipcursor(@rect1);  
          end;  
          procedure   TForm1.Button2Click(Sender:   TObject);  
          var  
          screenrect:trect;  
          begin  
              screenrect:=rect(0,0,screen.Width,screen.Height);  
              clipcursor(@screenrect);  
          end;  
  (20).限制edit框只能输入数字。  
          procedure   TForm1.Edit1KeyPress(Sender:   TObject;   var   Key:   Char);  
          begin  
              if   not   (key   in   )   then  
              begin  
                  key:=#0;  
                  Messagebeep(0);  
              end;  
          end;  
  (21).dbgrid中根据任一条件某一格变色。  
          procedure   TForm_main.DBGridEh1DrawColumnCell(Sender:   TObject;  
          const   Rect:   TRect;   DataCol:   Integer;   Column:   TColumnEh;  
          State:   TGridDrawState);  
          begin  
              if   (trim(DataModule1.ADOQuery1.FieldByName("dczt").AsString)="OK")   then  
              begin  
                  if   datacol=6   then  
                  begin  
                      DbGrideh1.Canvas.Brush.Color:=clGradientActiveCaption;  
                      DbGrideh1.DefaultDrawColumnCell(Rect,datacol,column,state);  
                  end;  
              end;  
          end;  
  (22).打开word文件。  
          procedure   TfjfsglForm.SpeedButton4Click(Sender:   TObject);  
          var  
          MSWord:   Variant;  
          str:string;    
          begin  
              if   trim(DataModule1.adoquery27.fieldbyname("fjmc").asstring)<>""   then  
              begin  
                  str:=trim(DataModule1.ADOQuery27.fieldbyname("fjmc").AsString);  
                  MSWord:=   CreateOLEObject("Word.Application");//  
                  MSWord.Documents.Open("d:\Program   Files\Common   Files\Sfa\"+str,   True);//  
                  MSWord.Visible:=1;//  
                  str:="";  
                  MSWord.ActiveDocument.Range(0,   0);//  
                  MSWord.ActiveDocument.Range.InsertAfter(str);//?úWord?D???ó×?·?"Title"  
                  MSWord.ActiveDocument.Range.InsertParagraphAfter;  
              end  
              else  
              showmessage("");  
          end;  
  (23).word文件传入和传出数据库。  
          uses   IdGlobal;  
          procedure   TdjhyForm.SpeedButton2Click(Sender:   TObject);  
          var  
          sfilename:string;  
          function   BlobContentTostring(const   Filename:string):string;  
          begin  
              with   Tfilestream.Create(filename,fmopenread)     do  
              try  
                  setlength(result,size);  
                  read(pointer(result)^,size);  
              finally  
                  free;  
              end;  
          end;  
          begin  
              if   opendialog1.Execute   then  
              begin  
                  sfilename:=opendialog1.FileName;  
                  DataModule1.ADOQuery14.Edit;  
                  DataModule1.ADOQuery14.FieldByName("word").AsString:=blobcontenttostring(sfilename);  
                  DataModule1.ADOQuery14.Post;  
              end;  
          end;  
          procedure   TdjhyForm.SpeedButton1Click(Sender:   TObject);  
          var  
          sfilename:string;  
          bs:Tadoblobstream;  
          begin  
              bs:=Tadoblobstream.Create(TBLOBfield(DataModule1.ADOQuery14.FieldByName("word")),bmread);  
              try  
                  sfilename:=extractfilepath(application.ExeName)+trim(DataModule1.adoquery14.fieldbyname("hybh").AsString);  
                  sfilename:=sfilename+"."+"doc";  
                  bs.SaveToFile(sfilename);  
                  try  
                      djhyopenform:=Tdjhyopenform.Create(self);  
                      djhyopenform.olecontainer1.CreateObjectFromFile(sfilename,false);  
                      djhyopenform.OleContainer1.Iconic:=true;  
                      djhyopenform.ShowModal;  
                  finally  
                      djhyopenform.Free;  
                  end;  
              finally  
                  bs.free;  
              end;  
          end;  
  (24).中文标题的提示框。  
          procedure   TdjhyForm.SpeedButton5Click(Sender:   TObject);  
          begin  
              if   Application.MessageBox("",   Mb_YesNo   +   Mb_IconWarning)   =Id_yes   then   DataModule1.ADOQuery14.Delete;  
          end;  
  (25).运行一应用程序文件。  
          WinExec("HH.EXE   D:\Program   files\common   files\MyshipperCRM   e-sales   help\MyshipperCRM   e-sales   help.chm",SW_NORMAL);  
  Top

分享到:
评论

相关推荐

    delphi经验总结delphi总结

    在本文中,我们将深入探讨Delphi编程的一些关键知识点,总结经验并提供实用技巧。 1. **VCL框架**:Delphi的Visual Component Library(VCL)是一套丰富的组件库,包含用于构建用户界面和实现常见功能的控件。...

    Delphi模式编程(完整版).pdf

    ### Delphi模式编程知识点概述 #### 一、Delphi简介 Delphi是一种基于Object Pascal的集成开发环境(IDE),主要用于Windows平台的应用程序开发。它由Borland公司于1995年推出,并在随后的几年里迅速成为Windows应用...

    《Delphi模式编程》 PDF

    - 模式是一种在特定情境下解决常见问题的经验总结,它提供了一种可复用的设计方案。 - 在编程领域,设计模式是软件设计中经过验证的通用解决方案,可以提高代码的可读性和可维护性。 2. **Delphi编程基础**: - ...

    delphi socket编程学习

    Delphi Socket编程是Delphi开发中用于实现网络通信的重要技术,尤其在构建客户端-服务器应用时,它扮演着核心角色。Socket,源自英文"套接字",是网络编程的基本接口,提供了进程间的网络通信能力。本文将深入探讨...

    delphi编程技术

    总结来说,Delphi编程技术在构建学生管理系统中发挥了重要作用,它的高效性能、强大的组件库和数据库支持,以及友好的开发环境,都使得这类系统的开发更为高效和便捷。无论是对于初学者还是经验丰富的开发者,Delphi...

    delphi COM深入编程

    ### Delphi COM深入编程 #### 一、COM技术概述 组件对象模型(Component Object Model, COM)是Microsoft在20世纪90年代推出的一种面向对象的软件设计标准和技术规范。它提供了一种定义软件组件的方式,并且允许这些...

    delphi 网络编程示例 聊天程序

    总结来说,这个Delphi网络编程示例展示了如何利用TServerSocket和TClientSocket组件构建一个简单的聊天应用,涵盖了网络连接的建立、数据传输和用户界面的集成。通过研究这个示例,开发者可以深入了解Delphi在网络...

    Delphi编程环境

    总结,Delphi编程环境提供了一套完整的工具集,使得开发者能够高效地构建Windows应用程序。从理解Object Pascal语法到熟练掌握VCL组件,再到利用ORM进行数据库操作,每一个环节都有丰富的学习资源和支持。对于想要...

    《Delphi 深度编程及其项目应用开发》PDF书及代码

    《Delphi 深度编程及其项目应用开发》 作 者: 李存斌 汪兵 编著 丛书名: 万水软件项目应用与实例开发丛书 出版社: 中国水利水电出版社 出 版: 2002-9----------简 介 本书是在总结作者多年Delphi开发经验的基础上...

    Delphi模式编程第一分卷

    4.3.2 范例小结 第5章 抽象工厂模式(Abstract Factory) 5.1 模式解说 5.2 结构和用法 5.2.1 模式结构 5.2.2 代码模板 5.3 范例与实践 5.3.1 用抽象工厂模式动态构造界面风格 5.3.2 WebSnap的Web Module...

    初探Delphi模式编程

    设计模式并不是具体的代码或库,而是一种经验总结,能够帮助开发者在遇到类似问题时快速找到解决方案。 在Delphi中,常见的设计模式包括工厂模式、单例模式、观察者模式、策略模式等。例如,工厂模式提供了一种创建...

    Delphi模式编程

    在Delphi编程环境中,设计模式的应用同样广泛。Delphi是一种基于Object Pascal语言的集成开发环境,以其高效、快速和跨平台的能力深受程序员喜爱。设计模式不仅适用于Java、C++等其他语言,同样适用于Delphi,能够...

    Delphi 模式编程 (PDF)

    《Delphi模式编程》是面向Delphi开发者的经典著作,主要探讨了在Delphi编程中应用设计模式的理念和实践。设计模式是软件工程中的一个重要概念,它代表了在特定上下文中解决问题的经过验证的通用解决方案。这本书的...

    Delphi编程五大妙招

    设计模式是解决常见软件设计问题的经验总结。在Delphi编程中,如单例模式、工厂模式、观察者模式等,都是提升代码可读性、可维护性和可复用性的有效工具。了解并灵活运用设计模式,可以使你的代码结构更加清晰,更...

    Delphi模式编程第二分卷

    4.3.2 范例小结 第5章 抽象工厂模式(Abstract Factory) 5.1 模式解说 5.2 结构和用法 5.2.1 模式结构 5.2.2 代码模板 5.3 范例与实践 5.3.1 用抽象工厂模式动态构造界面风格 5.3.2 WebSnap的Web ...

    Delphi编程基础语法(个人学习集锦)

    总结,Delphi编程基础语法的学习包括理解Pascal语言基础、掌握对象和类的使用、熟悉VCL组件库以及事件驱动编程。通过个人学习集锦中的工程实例,可以更深入地了解Delphi在实际工程中的应用,从而提升编程技能。

    Delphi编程技巧大全 chm版

    Delphi编程技巧大全 chm版 Delphi编程技巧大全 chm版,小册子,但内容包括有Delphi编程的方方面面,都是挺基础的,这些技巧有的是编者从网上找的,有的是自己的经验总结,总之还是有一定参考价值的。

    Delphi编程控制摄像头

    总结来说,Delphi编程控制摄像头主要依赖于AVICAP32.DLL库,通过定义常量和调用`capCreateCaptureWindowA`及`SendMessage`函数,可以实现摄像头的连接、预览、捕获等操作。这不仅能够帮助开发者理解底层的摄像头控制...

    delphi网络编程

    ### Delphi网络编程知识点 #### 一、Delphi下的网络编程基础 在Delphi中进行网络编程主要依赖于Socket编程技术。**Socket**是一种在不同计算机之间进行通信的方法,它基于传输层协议(主要是TCP和UDP)之上。通过...

    Delphi接口编程

    ### Delphi 接口编程详解 #### 一、引言 在面向对象编程(Object-Oriented Programming,简称 OOP)领域中,继承是构建软件系统的重要机制之一。继承允许新类从现有类那里获得成员变量和方法,从而实现代码复用。...

Global site tag (gtag.js) - Google Analytics