小知识,如Form淡出、捕捉Form最小化

康体正骨

康体正骨

2016-02-19 13:21

清醒时做事,糊涂时读书,大怒时睡觉,无聊时关注图老师为大家准备的精彩内容。下面为大家推荐小知识,如Form淡出、捕捉Form最小化,无聊中的都看过来。

  (*)Form淡出
  1)AnimateWindow(Form1.Handle,1000,AW_BLEND);//淡入
    AnimateWindow(Form1.Handle,1000,AW_HIDE or AW_BLEND);//淡出
  2)窗体有AlphaBlend属性和AlphaBlendValue属性,将AlphaBlend属性设为True,然后在Timer组件中随着时间改变AlphaBlendValue的值(0-255)即可
    AlphaBlendValue:=1;//窗体透明

  (*)捕捉Form最小化
  定义一个过程
  public
      procedure onminsize(var msg:twmsyscommand);message wm_syscommand;
  procedure TForm1.onminsize(var msg: twmsyscommand);
  begin
    if msg.CmdType=SC_MINIMIZE then
    begin
      form1.Width:=100;
      form1.Height:=100;
      form1.Left:=100;
      form1.Top:=300;
      exit;
    end;
    inherited;
  end;

  (*)createGuid(out newGUID)
     s:=GUIDToString(newGUID)

  (*)四舍五入取正: y:=Round(x)

  (*) string:=StringReplace(string1,'*','#',[rfReplaceAll]);

  (*)把一个string用单引号括起来作为string返回
    QuotedStr(const S: string): string

  (*) 如何让DBGRID中的内容分页显示
    ADODataSet1.Open;
    ADODataSet1.Recordset.PageSize := 10;           //显示第一页  
    ADODataSet1.Recordset.AbsolutePosition := 1;
    ADODataSet1.Recordset.PageSize := 10;           //显示第二页
    ADODataSet1.Recordset.AbsolutePosition := 11;

  (*)实现解析IP地址为主机域名
  uses WinSock
  过程如下:
    function IPAddrToName(IPAddr : String): String;
    var
      SockAddrIn: TSockAddrIn;
      HostEnt: PHostEnt;
      WSAData: TWSAData;
    begin
      WSAStartup($101, WSAData);
      SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
      HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
      if HostEntnil then
      begin
        result:=StrPas(Hostent^.h_name)
      end
      else
      begin
        result:='';
      end;
    end;
  使用函数:
  var
    Name: string;
  begin
    Name := InputBox('输入对方主机IP', '主机IP地址:', '');
    showmessage(IpAddrToName(Name));
  end;

  (*)去掉twebbrowser右边的ScrollBar
  WebBrowser1.oleobject.Document.body.Scroll := 'no';

  (*)TTreeView的结点如何具有CheckBox
  TreeView有个Images属性,做三张小图片:
  全选中、部分选中、不选状态(直接拍下CheckBox三种状态的图片在加工一下就可以了),然后在点击事件中根据具体情况设置TTreeNodes的ImageIndex就OK了。
  重载TreeView的CreateParams:
  type
    TCheckBoxTreeView = class(TTreeView)
    protected
      procedure CreateParams(var Params: TCreateParams); override;
    end;

  procedure TCheckBoxTreeView.CreateParams(var Params: TCreateParams);
  begin
    inherited;
    Params.Style:=Params.Style or TVS_CHECKBOXES;
    { TVS_CHECKBOXES declared in CommCtrl }
  end;

  如果要Check这个CheckBox,可以用下面的代码:
  function IsNodeChecked(Node :TTreeNode) :Boolean;
  const
    TVIS_CHECKED = $2000;
  var
    TvItem :TTVItem;
  begin
    TvItem.Mask  := TVIF_STATE;
    TvItem.hItem := Node.ItemId;
    TreeView_GetItem(Node.TreeView.Handle, TvItem);
    Result := (TvItem.State and TVIS_CHECKED) = TVIS_CHECKED;
  end;

  procedure SetNodeChecked(Node :TTreeNode; Checked :Boolean);
  const
    TVIS_CHECKED = $2000;
  var
    TvItem :TTVItem;
  begin
    FillChar(TvItem, SizeOf(TvItem), 0);
    with TvItem do begin
      hItem     := Node.ItemId;
      Mask      := TVIF_STATE;
      StateMask := TVIS_STATEIMAGEMASK;
      if Checked then
        TvItem.State :=TVIS_CHECKED
      else
        TvItem.State :=TVIS_CHECKED shr 1;
      TreeView_SetItem(Node.TreeView.Handle, TvItem);
    end;
  end;
  可以做成事件和封装成一个类:
  private OldState :Boolean;

  procedure Change(Node: TTreeNode); override;
  begin
    inherited Change(Node);
    OldState := IsNodeChecked(Node);
  end;

  procedure Click; override;
  var
    NewState :Boolean;
  begin
    inherited Click;
    NewState := IsNodeChecked(Self.Selected);
    if NewState = OldState then Exit;
    if (NewState) and Assigned(OnNodeChecked) then OnNodeChecked()
    else if (not NewState) and Assigned(OnNodeUnChecked) then
  OnNodeUnChecked()

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  // OnNodeChecked & OnNodeUnchecked will be events that you declare
  end;

  (*)如何将stringgrid中每列的数据居中显示?
    (1)将stringgrid的defaultdraw设为:false;
    (2)procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
  var
    sText: string;
  begin
    with StringGrid1 do
    begin
      sText := Cells[ACol, ARow];
      if sText '' then
      begin
        Canvas.FillRect(Rect);
        DrawText(Canvas.Handle, PChar(sText), Length(sText), Rect, DT_CENTER or DT_VCENTER or DT_SINGLELINE);
      end;
    end;
  end;

  DLL获得自己所在的路径:Windows.GetModuleFileName(HInstance,lp, 100);

  Caption := Copy(Edit1.Text, 3, MaxInt); //建议,少计算一次

  取得explorer句柄,线程
  GetWindowThreadProcessID(FindWindow('ExploreWClass', nil), nil)
  FindWindow('ExploreWClass', nil)

  调用记事本
  uses .... shellapi;
  shellexecute(handle,nil,pchar('c:windowsotepad'),nil,nil,sw_shownormal);

  用回车代替TAB  在onkeypress  写
      if  key=#13 then perform(WM_NEXTDLGCTL,0,0);

  
  fieldName like "%'+gA_FindValue+'%"'

  formatFloat('0.00',doubleValue);  //格式化 Float --- string

  mailto:whj@aa.com?subject=subjectTille        ( &Attach=C:Config.sys )

  //返回给定月份的天数
  uses SysUitls; // IsLeapYear
  ...
  function DaysOfMonth(Date: TDateTime): integer;
  var y, m, d: Word;
  begin
     DecodeDate( Date, y, m, d );
     case m of
       2:  if IsLeapYear(y) then
             Result:=29 else Result:=28;
       1,3,5,7,8,10,12: Result:=31;
       4,6,9,11:        Result:=30;
    end;
  end;

  //触发一个错误
    raise Exception.Create('delete table Error');

  //获取 IP 地址  (getIP.exe)
  procedure TForm1.Button1Click(Sender: TObject);
  var
    wVersionRequested : WORD;
    wsaData : TWSAData;
    p : PHostEnt;
    s : array[0..128] of char;
    p2 : pchar;
    OutPut:array[0..100] of char;
  begin
   {Start up WinSock}
       wVersionRequested := MAKEWORD(1, 1);
       WSAStartup(wVersionRequested, wsaData);

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  {Get the computer name}
       GetHostName(@s, 128);
       p := GetHostByName(@s);

  {Get the IpAddress}
       p2 := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
       StrPCopy(OutPut,'Hostname: '+Format('%s', [p^.h_Name])+#10#13+
                         'IP address: '+Format('%s',[p2])
                         );
       WSACleanup;
       MessageBox(0,OutPut,'Get IP ! - this is your IP Address',mb_ok or mb_iconinformation);
  end;

展开更多 50%)
分享

猜你喜欢

小知识,如Form淡出、捕捉Form最小化

编程语言 网络编程
小知识,如Form淡出、捕捉Form最小化

剖宫产疤痕最小化的方案

分娩
剖宫产疤痕最小化的方案

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

强制弹出页面+自动最小化广告代码

Web开发
强制弹出页面+自动最小化广告代码

四妙招剖宫疤痕最小化

孕妇
四妙招剖宫疤痕最小化

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

怎么解决IE窗口最小化故障

计算机应用技术
怎么解决IE窗口最小化故障

走出WindowsXP Ghost最小化克隆误区

windows 操作系统
走出WindowsXP Ghost最小化克隆误区

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

JDK配置问题

JDK配置问题

网页设计从业者必看的职业规划

网页设计从业者必看的职业规划
下拉加载更多内容 ↓