zoukankan      html  css  js  c++  java
  • 窗体控件笔记

    顺便说一下,今天印花税下降,股市从早上开盘到现在一个小时升了9.06%,天啊,太疯狂了!

    最近要写一些硬件接口的程序(OPC、MOBY..)又从.NET回归到DELPHI了,又想抽象一些,所以写点笔记回忆一下写窗体控件!

    1.从窗体控件开始才有HANDLE熟悉,即TWinControl开始 ,但一般用TCustomControl来继承
    2.如果直接SHIFT点击引用的控件单元无法定位到哪个单元文件,说明引用的DCU不是个上次哪个,删除DCU,从新编译即可!(前提:你搜索路径对)
    3.修改组件的属性后,好像必须重新编译组件所在的包,否则就不会出现新的属性值!(好像有别的方法更快捷,忘记了)
    4.声明接受消息的事件必须在控件的protected属性下
    5.内嵌入TTimer组件的时候不能单元QExtCtrls,而应该是ExtCtrls,而且别挂到主窗体下去
    6.让程序在任务栏中隐藏,在主窗体的CREATE事件里面加
    //隐藏
    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
    //显示
    SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_APPWINDOW); 
       其实如果不是要放到控件内,就直接用FORM的HIDE方法就可以了,即最小化且在任务栏中隐藏了

    Delphi 2010可以在工程代码里面加:

      Application.MainFormOnTaskbar := True;
      Application.ShowMainForm := False;
      ShowWindow(Application.Handle, SW_HIDE);


    7.任务栏托盘上放图标,还是用TRAYICON控件比较好,自己写还是比较麻烦,不集成到控件内了!

    procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
    procedure Tfrmmain.WMSysCommand(var Message: TMessage);
    begin
        
    if Message.WParam = SC_ICON then
      begin
         
    //如果用户最小化窗口则将窗口
         
    //隐藏并在任务栏上添加图标
        Hide;
        TrayIcon1.TrayIcon(
    true);
      end
      
    else
      begin
         
    //如果是其它的SystemCommand
         
    //消息则调用系统缺省处理函数处理之。
         DefWindowProc(self.Handle,Message.Msg,Message.WParam,Message.LParam);
      end;
    end;
    托盘菜单内加
    procedure Tfrmmain.N1Click(Sender: TObject);
    begin
        Show;
      TrayIcon1.TrayIcon(
    false);
    end;
  • 相关阅读:
    java通过dom读写xml文件
    SWT
    Eclipse RCP学习资料
    Integration Guide
    一个Linux命令,黑客帝国
    GET和POST两种基本请求方法的区别
    贫血模式-AnemicDomainModel
    Synchronized锁在Spring事务管理下,为啥还线程不安全?
    redis 集群配置、启动
    redis cluster集群
  • 原文地址:https://www.cnblogs.com/enli/p/1168820.html
Copyright © 2011-2022 走看看