国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 18:14:32
字體:
來源:轉載
供稿:網友

(*)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 HostEnt<>nil 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()

// 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:/windows/notepad'),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);

{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;


上一篇:TextFile讀寫

下一篇:關于時間函數

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 沭阳县| 赞皇县| 崇义县| 岱山县| 车险| 临沧市| 汝阳县| 清徐县| 贺州市| 汝南县| 横山县| 林口县| 绥中县| 邯郸市| 富平县| 榆林市| 伊金霍洛旗| 华安县| 鹤岗市| 平塘县| 兴化市| 五指山市| 吉首市| 和硕县| 浙江省| 岱山县| 微山县| 赣州市| 乐昌市| 土默特右旗| 曲阳县| 云霄县| 西青区| 安康市| 江都市| 囊谦县| 抚顺县| 宿迁市| 望江县| 全州县| 旅游|