不常用但是很实用的函数

uses CommCtrl; -- 很有料!!!

procedure TForm1.Button1Click(Sender: TObject);
var ebt: TEditBalloonTip;
begin
  with ebt do
  begin
    cbStruct := SizeOf(ebt);
    pszTitle := 'title';
    pszText := 'Text';
    ttiIcon := 1;
  end;
  SendMessage(Edit1.Handle,EM_SHOWBALLOONTIP,0,Longint(@ebt))
end;
// Balloon

 

【Controls】

var s:String;
begin
  s:=GetParentForm(Button2).Name;//获得form
  ShowMessage(s);
  ShowMessageFmt('%0:d,%0:d',[123]);//注意%d前用的是Index
  SendAppMessage(WM_Close,0,0);//向主程序发送消息
end;

 

《InsideVCL》其中李维先生提到
funtion ObjectFromHWnd(Handle:HWnd):TWinControl;//根据Handle获得VCL组件
可这个函数我一开始没有找到。回想自己使用的函数。
function IsVCLControl(Handle: HWnd): Boolean;
function FindControl(Handle: HWnd): TWinControl;
function FindVCLWindow(const Pos: TPoint): TWinControl;
结果在FindControl里找到了。

 

 

【miscellaneous routines】

Assert(1=1,'aaaa');

Assert(1=0,'bbbb');

 

HtmlTable function 待研究

 

Slice function 返回的是一个Array ,用于截取一个子Array

CountGenerations function 从A类型,到B类型,中间有多少次继承。

ValidParentForm function 返回某控件的Form

 

【Classes】

 

分割字符串

function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings):

Separators分割符号

WhiteSpace被忽略的字符。

Content源

Strings分割后的内容

ss:=TStrings.Create;

iCount:=ExtractStrings(['|'],[' ','#','@'],'asdf@#|  123|zxc',ss);

ss........

 

function ReadComponentRes(const ResName: string; Instance: TComponent): TComponent;
function ReadComponentResEx(HInstance: THandle; const ResName: string): TComponent;
function ReadComponentResFile(const FileName: string; Instance: TComponent): TComponent;
procedure WriteComponentResFile(const FileName: string; Instance: TComponent);

{ Object conversion routines }

type
  TStreamOriginalFormat = (sofUnknown, sofBinary, sofText);

procedure ObjectBinaryToText(Input, Output: TStream); overload;
procedure ObjectBinaryToText(Input, Output: TStream;
  var OriginalFormat: TStreamOriginalFormat); overload;
procedure ObjectTextToBinary(Input, Output: TStream); overload;
procedure ObjectTextToBinary(Input, Output: TStream;
  var OriginalFormat: TStreamOriginalFormat); overload;

procedure ObjectResourceToText(Input, Output: TStream); overload;
procedure ObjectResourceToText(Input, Output: TStream;
  var OriginalFormat: TStreamOriginalFormat); overload;
procedure ObjectTextToResource(Input, Output: TStream); overload;
procedure ObjectTextToResource(Input, Output: TStream;
  var OriginalFormat: TStreamOriginalFormat); overload;

function TestStreamFormat(Stream: TStream): TStreamOriginalFormat;

{ Utility routines }

function LineStart(Buffer, BufPos: PChar): PChar;
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar;
  Strings: TStrings): Integer;

procedure BinToHex(Buffer, Text: PChar; BufSize: Integer);
function HexToBin(Text, Buffer: PChar; BufSize: Integer): Integer;

 

 

Rect Point Range的应用(2008-07-15 15:32:11)

好东西,但是总是忘记。查呢也查得到,嫌麻烦。记录。

IsRectEmpty(rr) 是否为空区域
InValidPoint(pp) 如果点是-1,-1的话
EnsureRange(const AValue, AMin, AMax: Integer):Integer
EnsureRange(10,10,20);//10
EnsureRange(10,9,20);//10
EnsureRange(1,9,20);//9
如果AValue在这个范围内,则返回AValue
如果小于AMin则返回AMin,大于AMax则返回AMax
InRange(const AValue, AMin, AMax: Integer): Boolean;
如果AValue>=AMin 并且 AValue<=AMax ,则返回true

OffsetRect(rr,10,10)  移动区域,正就是左和下增加,负就是左和下减少。
InflateRect(rr,10,10)  增加区域,正负自己试。
UnionRect 交集
IntersectRect 并集
EqualRect
是否相等
IsRectEmpty
是否为空
SetRectEmpty
设置为空
SubtractRect 前者减后者
Rect(left,top,right,bottom)  Bounds(left,top,width,height)
两者差不多

 

两个数字变一个数字(2008-03-12 16:30:15)
a:= MakeLong(10,20);
 
LoWord(a);
HiWord(a);
原文地址:https://www.cnblogs.com/key-ok/p/3380427.html