关于 TApplication 详解 四 ---- TControl
四、TControl
Align 属性
对应对象:TControl
声明:TAlign = (alNone, alTop, alBottom, alLeft, alRight, alClient);
property Align: TAlign;
功能:Align属性用来确定控件在它的父类中的对齐方式。 Align属性的类型是TAlign,它可以被设置成为以下值中的一个。
值 意 义
alNone 组件被保持在它的父类放置的位置,即窗体或面板,它是属性的缺省值。
alTop 组件被移动到窗体的顶端,并且被重新决定大小以充满窗体的宽,组件
的高度不会受到影响。
alBottom 组件被移动到窗体的底端,并且被重新决定大小以充满窗体的宽,组件
的高度不会受到影响。
alLeft 组件被移动到窗体的左边,并且被重新设定大小以充满窗体的高度,组
件的宽度不会受到影响。
alRight 组件被移动到窗体的右边,并且被重新设定大小以充满窗体的高度,组
件的宽度不会受到影响。
alClient 组件被重新决定大小以充满一个窗体的用户区。如果另一个组件已经占据
了用户区的部分,那么组件将重新在用户区中的剩余部分中设定大小。
BoundsRect 属性
对应对象:TControl
声明:TRect = record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
property BoundsRect: TRect;
功能:BoundsRect属性用来指出控件的边界的矩形。 BoundsRect属性包含了描述控件父类区域的边界的矩形。矩形的坐标是在父类坐标系中给定。
Caption 属性
对应对象:TControl
声明:TCaption = type string;
property Caption: TCaption;
功能:Caption属性用来确定用于标记控件的字符串。 控件的标题可以被修改,但在运行时却很少被修改。由于Caption属性对用户禁止编辑,所以要允许用户编辑显示在控件中的文字的控件,应使用Text属性而不是Caption属性。Caption属性的类型为TCaption,它是一个标准的字符串。
例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Caption := ‘Delphi Explorer’;
Button1.Caption := ‘OK’;
Label1.Caption := ‘Captions are relatively static’;
end;
ClientHeight 属性
对应对象:TControl
声明:property ClientHeight: Integer;
功能:ClientHeight属性用来说明控件用户区的高度。 ClientHeight属性对应除窗体之外的所有控件运行时的属性。它用像素来进行度量,许多控件与ClientHeight属性具有相同的高度值。
例子:
procedure TForm1.FormCreate(Sender: TObject);
var
X, Y: Integer;
begin
X := Form1.ClientWidth;
Y := Form1.ClientHeight;
//...
end;
ClientOrigin 属性
对应对象:TControl
声明:TPoint = record
X: Longint;
Y: Longint;
end;
property ClientOrigin: TPoint;
功能:ClientOrigin属性说明包含控件的用户区的左上角的坐标值。 ClientOrigin属性包含了控件用户区的上部左边的像素的坐标值,坐标是以屏幕的坐标值进行度量。
例子:
procedure TForm1.FormCreate(Sender: TObject);
var
OriginPoint: TPoint;
begin
OriginPoint := Form1.ClientOrigin;
end;
ClientRect 属性
对应对象:TControl
声明:TPoint = record
X: Longint;
Y: Longint;
end;
TRect = record
case Integer of
0: (Left, Top, Right, Bottom: Integer);
1: (TopLeft, BottomRight: TPoint);
end;
property ClientRect: TRect;
功能:ClientRect属性说明了包含有控件的用户区的尺寸大小。 ClientRect属性是运行时有效,是只读型的。属性包含了控件用户区的边界上下左右的像素位置,对应TRect类型结构区域的左边和上部的坐标值是0,对应的下边和右边的像素值说明了区域的高度和宽度。
例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Canvas.Brush.Color := clBlue;
Form1.Canvas.FillRect(Form1.ClientRect);
end;
ClientWidth 属性
对应对象:TControl
声明:property ClientWidth: Integer;
功能:ClientWidth属性说明包含控件用户区的宽度。
ClientWidth属性是对应除窗体之外的所有控件都有效运行时的属性。该属性表示了控件用户区的水平大小,宽度以像素来度量。对于许多控件ClientWidth属性和Width属性是一致的,而窗体则将用户区视为窗体框架内的成分,窗体的ClientWidth属性通常将小于Width属性的值。
例子:
procedure TForm1.FormCreate(Sender: TObject);
var
X, Y: Integer;
begin
X := Form1.ClientWidth;
Y := Form1.ClientHeight;
//...
end;
Color 属性
对应对象:TControl
声明:property Color: TColor;
功能:Color属性用来确定控件的颜色。
用户可以使用Color属性来获得颜色或设置控件的颜色。用户可以通过手工来为控件的颜色属性赋予一个值进行重新设置。Color属性是TColor类型的值,它有许多有效的颜色值可以使用,详情见下表。
值 颜 色
clBlack 黑色Black。
clMaroon 栗色Maroon。
clGreen 绿色Green。
clOlive 橄榄绿Olive green。
clNavy 深蓝色Navy blue。
clPurple 紫色Purple。
clTeal 深青色Teal。
clGray 灰色Gray。
clSilver 银色Silver。
clRed 红色Red。
clLine 浅绿色Lime green。
clBlue 蓝色Blue。
clFuchsia 紫红色Fuchsia。
clAqua 浅绿色Aqua。
clWhite 白色White。
clBackground 当前的系统桌面的背景颜色
clActiveCaption 当前的被激活窗口的标题栏的颜色。
clInactiveCaption 当前的没有被激活的窗口的标题栏的颜色。
clMenu 当前的菜单背景的颜色。
clWindow 当前的窗口背景的颜色。
clWindowFrame 当前的窗口框架的颜色。
clMenuText 当前的菜单上的文本的颜色。
clCaptionText 当前的被激活窗口的标题栏的文本的颜色。
clActiveBorder 当前的被激活窗口的边界颜色。
clInactiveBorder 当前的没有被激活窗口的边界颜色。
clAppWorkSpace 当前的应用程序工作区的颜色。
clHighlight 当前的被选择文本的背景颜色。
clHighlightText 当前的被选择文本的颜色。
clBtnFace 当前的按钮表面的颜色。
clBtnShadow 当前的按钮投影的阴影颜色。
clGrayText 当前的无效文本的颜色。
clBtnText 当前的按钮上文本的颜色。
clInactiveCaptionText 当前的被激活窗口标题栏的文本颜色。
clBtnHighlight 当前的按钮上高亮度的颜色。
cl3DDkShadow 只有对Windows95或NT4.0系统:三维
显示元素阴影的颜色。
cl3DLight 只有对Windows95或NT4.0系统:对于
三维显示元素的亮面(朝向光源的面)
clInfoText 只有对Windows95或NT4.0系统:
ToolTip(工具提示)的文本颜色。
clInfoBk 只有对Windows95或NT4.0系统:
ToolTip(工具提示)的背景颜色
ControlState 属性
对应对象:TControl
声明:TControlState = set of (csLButtonDown, csClicked, csPalette, csReadingState, csAlignmentNeeded, csFocusing, csCreating);
property ControlState: TControlState;
功能:ControlState属性用来查询控件运行时的状态。
ControlState属性用来指明运行的每一个时刻控件的状态。属性属于TControlState类型,这个类型是一个标志集,它可以被设置成为以下值的组合形式。
值 意 义
csLButtonDown 点击鼠标的左按钮不放,这个是为所有的鼠标按下事件设置的。
csClicked 和csLButtonDown一样,只是在ControlStyle属性包含
csClickEvents标志时它才被设置,以说明鼠标按下时的事件。
csPalette 说明一个WM_PALETTCHANGED信息被控件接受或者被控件的父类接受。
csReadingState 控件正在从一个流中读取它的状态。
csAlignmentNeeded 当队列再次被允许时控件需要重新排列它自己。
csFocusing 应用程序过程焦点送给控件。这不能保证控件就将收到焦点,
但是防止了递归的调用。
csPaintCopy 控件被复制,意味着控件的拷贝被打印,控制风格标记
csReplicatable必须被设置为该状态的发生。
csCreating 框架和它的所有者发生“与”或者“或”的逻辑,并且控件
被创建了。这个标记将在所有的创建动作完成时被清除。
ControlStyle 属性
对应对象:TControl
声明:TControlStyle = set of (csAcceptsControls, csCaptionMouse, csDesignInteractive, csFramed, csClickEvents, csSetCaption, csOpaque, csDoubleClicks, csFixedWidth, csFixedHeight, csNoDesignVisible, csReplicatable, csNoStdEvents, csDisplayDragImage, csReflector);
property ControlStyle: TControlStyle;
功能:ControlStyle属性用来说明激活一个控件的哪些属性。
ControlStyle属性方式被改变的次数比相应ControlState属性的标记要少。ControlStyle属性属于TControlStyle的类型,它可以是以下值的组合。
值 意 义
csAcceptsControls 接受上面的控件。
csCaptureMouse 当这个事件发生时,控件捕获鼠标的事件。
csDesignInteractive 控件在设计时将鼠标按钮的右击映射为鼠标按钮的
左击来控制控件。
csClickEvents 控件可以接受并且对按击的操作进行反应。
csFramed 控件有一个三维框架。
csSetCaption 如果标题还没有被明确地设置成为其他的内容时,
控件将改变它的标题以便和Name属性相匹配。
csOpaque 控件将用户区的矩形设为透明。
csDoubleClicks 控件可以对鼠标的双击操作进行接受和反应,
此外可以将双击映射成为按击操作。
csFixedWidth 控件的宽度设为固定值。
csFixedHeight 控件的高度设为固定值。
csNoDesignVisible 在设计时控件是不可以变化的。
csReplicatable 控件可以通过使用PaintTo方法,从而被拷贝到任意
一个画面上进行绘制。
csNoStdEvents 标准事件,例如鼠标、键盘、点击事件均被忽略。
如果用户的代码不需要对这些事件进行反应或者希望
用户的应用程序运行更快时将使用这个设置来处理。
csDisplayDragImage 当鼠标被拖动到控件上面时,控件可从一个图像列表
中显示一个图像。使用这个设置可使控件使用一个图像的列表。
csReflector 控件将对系统对话框信息、焦点信息及尺寸改变信息
进行反应,如果控件被运作一个ActiveX的控件时使用
这个设置,可使控件接受这些事件的通知。
Cursor 属性
对应对象:TControl
声明:TCursor = -32768~32767;
功能:Cursor属性用来确定当鼠标在控件上进行拖动时,将显示什么样的鼠标图形。Cursor属性属于TCursor类型变量,它包含了用户可以使用的许多标准的鼠标形式,并包含了以下的有效值:crDefault,crArrow,crNone,crCross,crIBeam,crSize,crSizeNESW,crSizeNS,crSizeNWSE,crSizeWE,crUpArrow,crHourGlass,crDrag,crNoDrop,crHSplit,crVSplit,crMultiDrag,crSQLWait,crNo,crAppStart,crHelp和crHandPoint,每个值对应的鼠标图像可以参考有关函数。
例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Cursor := crCross;
Panel1.Cursor := crArrow;
end;
DesktopFont 属性
对应对象:TControl
声明:property DesktopFont: Boolean;
功能:DesktopFont属性说明当写入文本时,控件是否使用系统的桌面的字体。
DragCursor 属性
对应对象:TControl
声明:TCursor = -32768~32767;
property DragCursor: TCursor;
功能:DragCursor属性用来确定鼠标在拖动时的形式。
在DragCursor属性有效之前用户必须首先设置控件接受下拉时的对象,实际上用户只需处理一个诸如OnDragOver的拖放事件便可实现。
例子:
//Change the cursor shape if an object is dragged over the panel
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Panel1.DragCursor := crDrag;
end;
DragMode 属性
对应对象:TControl
声明:TDragMode = (dmManual, dmAutomatic);
property DragMode: TDragMode;
功能:DragMode属性用来确定控件被拖动时的行为。
DragMode属性属于TDragMode类型变量。这个类型有两个有效的值,即两个有效的拖动方式,dmAutomatic:如果dmAutomatic被选择作为拖动形式,则控件可被拖动,并且用户可以随时地点击和拖动控件。dmManual:如果dmManual被选择为其拖动的方式,直到控件调用了BeginDrag方法,控件才可以被拖动。
例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
//...
Form1.DragMode := dmAutomatic;
Panel1.DragMode := dmAutomatic;
end;
Enabled 属性
对应对象:TControl
声明:property Enabled: Boolean;
功能:Enabled属性用来确定控件对鼠标、键盘及Timer事件是否将作出反应。
如果Enabled属性被设置为真,那么控件将对用户的鼠标、键盘输入及Timer事件作出反应。如果Enabled属性被设置为假,那么控件将变成灰色并且对鼠标、键盘及Timer事件不作反应。一般当控件的功能与当前状态无关时,可将该属性设置为假。
Font 属性
对应对象:TControl
声明:property Font: TFont;
功能:Font属性用来确定控件上文字的字体。
Font属性允许用户对控件的文本和标题的字体的属性,选择各种有效的字体。
字体属性包含颜色、名称、尺寸大小及风格。
例子:
with Form1.Font do
begin
Size := 12;
Name := ‘Arial’;
Color := clGreen;
Style := [fsBold];
end;
Height 属性
对应对象:TControl
声明:property Height: Integer;
功能:Height属性说明控件高度的尺寸大小。
Height属性以屏幕的像素作为尺寸的度量,指明控件的高度值。
例子:
procedure TForm1.FormPaint(Sender: TObject);
begin
Panel1.Top := 10;
Panel1.Left := 10;
Panel1.Height := Form1.ClientHeight – 20;
Panel1.Width := Form1.ClientWidth – 20;
end;
Hint属性
对应对象:Tcontrol
声明:property Hint:string;
功能:Hint属性用来说明当光标停止在控件上时将出现工具提示窗口内容。为了使工具能够提示所显示得文字,必须将包含了工具得窗体控件的ShowHint属性为真。如果窗体和控件的ShowHint属性被设置为真,但是没有设置控件Hint属性,那么工具将显示控件父类的Hint的文字。
IsControl属性
对应对象:TControl
声明:property lsControl:Boolean;
功能:IsControl 属性用来决定一个窗体是否存储了它的特别属性。
Left 属性
对应对象:Tcontrol
声明:property Left:Integer;
功能:Left属性用来说明控件左边界的水平坐标。Left属性指出控件离它的容器的左边边界是多少象素,并使用屏幕坐标来度量一个窗体的Left属性值。
MouseCapture属性
对应对象:Tcontrol
声明:property MouseCapture:Boolean;
功能:MouseCapture属性说明控件是否已经俘获了鼠标事件。
Name属性
对应对象:TControl
声明:TcomponentName:string;
propertyName:TComponentName
功能:属性是控件的名,它是可作为一个控件的新名或者用来指出控件的名。
Parent属性
对应对象:TControl
声明:property Parent:TwinControl;
功能:属性用来指出控件的父类(容器)。控件的父类是可视的,包含了控件的窗口控件。控件在它的父类被撤消时将被自动地撤消。
ParentColor属性
相应对象:TControl
声明:property ParentColor:Boolean;
功能:ParentColor属性用来确定控件是否将使用父类的颜色值,即Color值。如果ParentColor属性设置为真,那么控件将使用它父类的Color属性的颜色。如果ParentColor属性设置为假,那么控件将使用自己确定的Color属性的颜色值。
ntFont属性
对应对象:TControl
声明:property ParentFont:Boolean;
功能:ParentFont属性用来确定控件是否使用父类的Font信息的属性值。如果ParentFont属性设置为真,那么控件将使用它父类的Font属性的字体。如果ParentFont属性设置为假,那么控件将使用自己确定的Font属性的字体属性值。
ParnetShowHint属性
对应对象:TControl
声明:property ParentShowHint:Boolean;
功能:ParentShowHint用来确定控件是否使用它的父类的ShowHint属性用来显示一个工具的提示。如果ParentShowHint属性设置为真,那么控件将使用它父类的ShowHint属性,以确定此控件是否将显示一个工具提示。如果ParentShowHint属性设置为假,则控件将使用自己定义的ShowHint属性的值以确定控件是否将显示一个工具提示。
PopupMenu属性
对应对象:TControl
声明:property PopupMenu:TpopupMenu;
功能:PopupMenu属性用来确定当用户右击控件区时,将对应地弹出哪种弹出式菜单。用户可以通过右击控件,来实现对应弹出式菜单的打开操作,用户可以通过调用弹出式菜单的Popup的方法来打开弹出式菜单。
例子:
procedure Tform1.FormCreate(Sender:Tobject);
begin
Form1.PopupMenu:=PopupMenu1;
//..
end;
//Exit the appllication when the Exit pop-up menu items is clicked
procedure Tform1.PopUpExitClick(Sender:Tobject);
begin
Close;
end;
ScalingFlags 属性
对应对象:TControl
声明:TscalingFlags=set of (sfLeft,sfTop,sfWidth,sfHeight,sfFont);
property ScalingFlags:TscalingFlags;
功能:ScalingFlags属性反应出控件的哪一个属性还没有进行尺度的计算。
ScalingFlags属性是一个内部标记的集合,首先在计算继承的窗体和控件的缩放比例时被使用。要是没有必要,应用程序将不使用这个属性。以下是标记和它们对应所表达的信息意义:
标记 意 义
SfLeft 控件的左边没有被进行尺寸计算缩放。
SfTop 控件的顶端没有被进行尺寸计算缩放。
SfWidth 控件的宽度没有被进行尺寸计算缩放。
SfHeight 控件的高度没有被进行尺寸计算缩放。
sfFont 控件的字体没有被进行尺寸计算缩放。
ShowHint属性
对应对象:TConcrol
声明:property ShowHint:Boolean;
功能:ShowHint属性用来确定控件是否显示一个工具提示。如果ShowHint属性被设置为真,那么当鼠标或光标停留在控件上时,将会显示出一个具有Hint属性的中文内容的工具提示。如果ShowHint属性被设置为假,同时ParentShowHint属性的值是假,那么将不显示工具的提示,但当ShowHint属性被设置为假ParentShowHint属性的值为真时,工具提示将依据其父类的ShowHint属性,如果父类的ShowHint属性是真,工具提示将显示,否则将不出现提示。ShowHint属性的缺省的值是真。
例子:
procedure Tform1.FormPaint(Sender:Tobject);
begin
btnHideMenu.ShowHint:=True;
btnHideMenu.Hint:=’Click here to enable menus’;
end;
Text 属性
对应对象:TControl
声明:Tcaption:=type string;
property Text:Tcaption;
功能:Text属性用来确定控件中出现的用户编辑的文字内容。在运行是可以在程序中对文字进行修改,但却很少这样作。由于Caption的属性,用户是不能编辑的,所以不允许用户编辑的控件所显示的文字将是Caption的属性。
Top 属性
对应对象:TControl
声明:property Top:Integer;
功能:Top属性用来确定控件左上方的坐标值。Top属性是一个使用了容器坐标的属性。它说明控件的边界距离容器的边界有多少象素,并且窗体的Top属性以及屏幕坐标进行度量。
Visible 属性
对应对象:TControl
声明:property Visible:Boolean;
功能:Visible属性用来确定控件是否是可见。如果Visible属性为真,那么将是可见的。如果Visible属性为假,则是不可见的。
Width 属性
对应对象:TControl
声明:property Width:Integer;
功能:Width属性说明了控件的宽度值。用户象素值指出控件的水平大小。用户可以在运行时修改Width属性值来改变控件的宽度。
例子:参见Height属性例子。
WindowProc 属性
对应对象:TControl
声明:TwndMethod=procedure ( var Message:Tmessage) of object;
property WindowProc:TwndMethod;
功能:WindowProc属性包含了窗口的过程,过程是对传送给控件信息的一种反应。
BeginDrag 方法
对应对象:TControl
声明:procedure BeginDrag(Immediate:Boolean);
功能:BeginDrag方法在控件被手工拖动时有效,BeginDrag方法用来启动一个控件的拖动过程。Immediate参数用来确定拖动操作的条件,如果Immediate参数为真,那么拖动将立即实行,同时鼠标将变为拖动设置时的形式,如果Immediate参数为假,鼠标将不改变,只是当鼠标在空间上移动了5个象素时才开始进行拖动的操作。
BringToFront 方法
对应对象:TControl
声明:procedure BringToFront;
功能:BringToFront方法用来改变控件轴的次序,并吧它放置在所有其他控件的上面。每一个窗口和非窗口的控件都有对应的Z轴次序。每个窗体上的窗口控件都在相同的Z轴次序上,每个非窗口的控件在一个独自的Z轴次序集合中。一个窗体上的所有窗口控件存在于一个Z轴次序集合中,所有的非窗口控件在另一个的Z轴次序集合中。窗口的控件总是出现在非窗口控件的上面,窗口控件下面的非窗口的控件将不能使用BringToFront方法出现在窗口控件的上面。
例子:
procedure Tform1.Button2Click(Sender:Tobject);
begin
Button1.BringToFront;
end;
ChangeScale 方法
对应对象:TControl
声明:procedure ChangeScale(M,D:Integer);dynamic;
功能:ChangeScale方法改变空间的大小,并依据一个指定的比例值来进行。
Click 方法
对应对象:TControl
声明:procedure Click:dynamic;
功能:Click方法调用与事件关联的控制事件的句柄。
ClientToScreen 方法
对应对象:TControl
声明:Tpoint=record
X:Longint;
Y:Longint;
End;
Function ClientToScreen(const Point:Tpoint):Tpoint;
功能:方法将控件坐标上的一个点的坐标值转换成屏幕坐标的值。
例子:
procedure Tform1.FormCreate(Sender:Tobject);
var
ButtonPos:Tpoint;
Begin
ButtonPos:=Button1.ClientToScreen(Point(Button1.Left,Button1.Top));
//…
End;
Create 方法
对应对象:TControl
声明:constructor Create(Aowner:Tcomponent);override;
功能:Create方法用来创造一个TControl的事件。
DefaultHandler 方法
对应对象:TControl
声明://DefaultHandler provides message handling for all messages that a control does
//not have specific handlers for.
Procedure DefaultHandler(var Message);override;
功能:DefaultHandler方法用来当一个控件没有指明处理时,提供了对所有信息的缺省处理。
DoEndDrag 方法
对应对象:TControl
声明:procedure DoEndDrag (Target:Tobject);X,Y:Integer);dynamic;
功能:DoEndDrag方法提供了对一个控件的OnEndDrag事件进行保护实施的方法。
DragCanceled 方法
对应对象:TControl
声明:procedure DragCanceled;dynamic;
功能:DragCanceled方法除了提供对一个拖动进行取消反应外没有其他的操作。
DragOver 方法
对应对象:TControl
声明:TdragState=(dsDragEnter,dsDragLeave,dsDragMove);
procedure DragOver (Source:Tobject;X,Y:Integer;State:TdragState;var
Accept:Boolean);dynamic;
功能:DragOver方法调用OnDragOver事件的句柄。设置Accept参数为真时将说明使用者可以在控件上放置被拖动的对象,当Accept参数为假时,说明用户不能在控件上放置被拖动的对象到。Source参数时被拖动的对象,以下时可能有效的State参数值。
值 意 义
DsDragEnter 鼠标正在进入控件。
DsDragMove 鼠标在控件上移动。
dsDragLeave 鼠标离开控件。
EndDrag方法
对应对象:TControl
声明:procedure EndDrag(Drop:Boolean);
功能:EndDrag方法将终止一个控件被进一步的拖动。如果Drop参数为真,那么可以放下控件,如果Drop参数为假,控件将不能被放下,拖动的操作将被取消。
GetClientOrigin 方法
对应对象:TControl
声明:function GetClientOrigin:Tpoint;virtual;
功能:GetClientOrigin方法获得一个控件用户区左上角屏幕的坐标值。
GetClientRect 方法
对应对象:TControl
声明:Trect=record
case integer of
0: (Left,Top,Right,Botton:Integer);
1: (TopLeft,BottonRight:Tpoint);
end;
function GetClinetRect:Trect;virtual;
功能:GetClinetRect方法返回一个矩形,以用来定义控件的用户区。
GetDeviceContext 方法
对应对象:TControl
声明:function GetDeviceContext( var WindowHandle:HWnd):Hdc;virtual;
功能:GetDeviceContext方法返回一个设备的上下文。
GetDragImages 方法
对应对象:TControl
声明:function GetDragImages:TcustomImageList;virtual;
功能:GetDragImages方法返回控件的图象列表,列表中包含了当拖动时被显示的图像。
GetPalette 方法
对应对象:TControl
声明:funciton GetPalette:HPALETTE;dynamic;
功能:GetPalette方法返回一个调色板的句柄,它被控件所使用。
GetParentComponent 方法
对应对象:TControl
声明:funciton GetParentComponent:Tcomponent;override;
功能:GetParentComponent方法返回控件父类的组件。
GetPopupMenu 方法
对应对象:TControl
声明:function GetPopupMenu:TpopupMenu;dynamic;
功能:GetPopupMenu方法获得一个控件的弹出式菜单。
GetTextBuf 方法
对应对象:TControl
声明:function GetTextBuf ( Buffer:Pchar;BufSize:Integer):Integer;
功能:GetTextBuf方法用来获得控件所包含的文字,并且将文字拷贝到一个缓冲区中。GetTextBuf方法从控件中获得文字,并把它作为一个以空字符结束的字符串拷贝到Buffer指定的缓冲区内。BufSize参数用来说明缓冲区的大小,在调用GetTextBuf方法之前使用GetTextLen方法进行设置。文字作为一个以空字符结尾的字符串被拷贝到缓冲区中。
例子:
procedure Tform1.Button2Click(Sender:Tobject);
var
MyBuffer:Pchar;
MyBufSize:Integer;
Begin
MyBufSize:=Button1.GetTextLen;
Button1.GetTextBuf(MyBuffer,MyBufSize);
StatusBar1.SetTextBuf(MyBuffer);
End;
GetTextLen 方法
对应对象:TControl
声明:function GetTextLen:Integer;
功能:GetTextLen方法用来检索控件文字的大小。GetTextLen方法一般在调用GetTextBuf方法之前使用,以便确定缓冲区的大小。使用GetTextLen方法可以代替字符串的处理函数。
例子:
procedure Tform1.Button2Click(Sender:Tobject);
var
MyBuffer:Pchar;
MyBufSize:Integer;
Begin
MyBufSize:=Button1.GetTextLen;
Button1.GetTextBuf(MyBuffer,MyBufSize);
StatusBar1.SetTextBuf(MyBuffer);
End;
HasParent 方法
对应对象:TControl
声明:function HasParent:Boolean;override;
功能:HasParent方法用来说明控件是否有一个父类。
Hide 方法
对应对象:TControl
声明:procedure Hide;
功能:Hide方法使一个控件变为不可视的。在Hide方法把控件的Visible属性设置为假 时,可使控件变的不可件的。
例子:
//If the “Hide menus” menu item is clicked,hide the forms menus but make the
//”show menu” button visible so the user can turn the menu on again if necessary
procedure Tform1.menuHideMenu1Click(Sender:Tobject);
begin
BtnHideMenu.Hide;
Form1.Menu:=nil;
End;
// If the “Show menu” button is clicked,hide the button and show the form’s main
menu
procedure Tform1.btnShowMenuClick(Sender:Tobject);
begin
From1.Menu:=MainMenu1;
BtnHideMenu.Hide;
end;
Invalildate 方法
对应对象:TControl
声明:procedure Invalidate;virtual;
功能:Invalidate方法使控件对本身进行再次绘制。在调用Invalidate方法时应该尽快地重新绘制控件,Invalidate方法有Refresh调用。
例子:
procedure Tform1.Button1Click(Sender:Tobject);
begin
//Invalidate the form so that it can be repainted
Form1.Intevalidate;
Form1.Canvas.Repaint;
end;
MouseDown 方法
对应对象:TControl
声明:TmouseButton=(mbleft,mbRight,mbMiddle);
TshiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
Procedure MouseDown (Button:TmouseButton;Shift:TshiftState;X,Y:Integer);
Dynamic;
功能:MouseDown方法调用OnMouseDown事件的句柄。
MouseMove 方法
对应对象:TControl
声明:TshiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
procedure MouseMove(Shift:TshiftState;X,Y:Integer);dynamic;
功能:MouseMove方法调用连接到OnMouseMove事件的句柄。
MouseUp方法
对应对象:Tcontrol
声明:TmouseButton=(mbLeft,mbRight,mbMiddle);
TshiftState=set of (ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
Procedure MouseUp(Button:TmouseButton;Shift:TshiftState;X,Y:Integer); Dynamic;
功能:MouseUp方法调用了OnMouseUp事件的句柄。
Notification方法
对应对象:Tcontrol
声明:Toperation=(opInsert,opRemove);
procedure Notification(Acomponent:Tcomponent;Operation:Toperation);override;
功能:当弹出式菜单的参考被破坏时Notification方法允许Tcontrol更新它的弹出式菜单的属性。
PaletteChanged方法
对应对象:Tcontrol
声明:function PaletteChanged(Foreground:Boolean):Boolean;dynamic;
功能:PaletteChanged方法对系统调色板的改变进行反应,它重新设置控件调色板的大小。
Perform方法
对应对象:Tcontrol
声明:function Perform(Msg:Cardinal;WParam,Lparam:Longint):Longint;
功能:Perform方法当控件接受指定的系统信息时反应。
Refresh方法
对应对象:Tcontrol
声明:procedure Refresh;
功能:Refresh方法用来删除控件中的图像并且重新绘制控件。 Refresh方法使用了InValidate和Update以刷新控件。如果用户的显示部分和其它的分布相混合,可以使用该方法进行更新。
例子:
procedure Tform1.mnuRefreshClick(Sender:Tobject);
begin
Form1.Refresh;
end;
Repaint方法
对应对象:Tcontrol
声明:procedure Repaint;
功能:Repaint方法使控件对自已进行重新绘制。Repaint方法和Refresh方法一样,只是这个方法不先删除控件的图像。如果用户希望首先删除控件之后再绘制它,可以使用Refresh方法。
ScreenToClient方法
对应对象:Tcontrol
声明:Tpoint=record
X:Longint;
Y:Longint;
End;
Function ScreenToClient(const Point:Tpoint):Tpoint;
功能:ScreenToClient方法将屏幕的坐标值转换成为控件的坐标值,ScreenToClient方法可以和屏幕到用户区的方法一起使用,以便将应该控件的坐标转换成为另一个控件的坐标值。
SendCancelMode方法
对应对象:Tcontrol
声明:procedure SendCancelMode(Sender:Tcontrol);
功能:SendCancelMode方法取消了控件的模式状态。
SendToBack方法
对应对象:Tcontrol
声明:procedure SendToBack;
功能:SendToBack方法将控件放置到容器中的所有其它控件的下面。窗口和非窗口控件有不同的Z轴的次序集合。一个窗体上的每一个窗口都在一个相同的Z轴的次序集合中,窗口控件总是出现在非窗口控件的上面,所以使用SendToBack方法将不能使一个非窗口控件上面的窗口控件放置到它的下面。
例子:
/Send the button behind the Panel
procedure Tform1.Button1Click(Sender:Tobject);
begin
Button1.SendToBack;
End;
SetBounds方法
对应对象:Tcontrol
声明:procedure SetBounds(Aleft,Atop,Awidth,Aheight:Integer);virtual;
功能:SetBounds方法用来设置控件的Left,Top,Width和Height属性。SetBounds方法使用用户可以在一次中设置控件边界的所有属性。这样可以使控件在一次重新绘制时就完成最后的效果,然而,一般的单独调用将使控件进行多次的重新绘制。
例子:
//Have the panel resize with the form
procedure Tform1.FormResize(Sender:Tobject);
begin
Panel1.SetBounds(10,10,Form1.ClientWidth-20,Form1.ClientHeight-20);
End;
SetDragMode方法
对应对象:Tcontrol
声明:TdragMode=(dmManual,dmAutomatic);
procedure SetDragMode(Value:TdragMode);virtual;
功能:SetDragMode方法为控件设置了拖动的模式。
SetName方法
对应对象:Tcontrol
声明:TcomponentName=type string;
procedure SetName(const Value:TcomponentName);override;
功能:SetName方法设置了控件的名。
SetParent方法
对应对象:Tcontrol
声明:procedure SetParent(Aparent:TwinControl);virtual;
功能:SetParent方法使控件可以设置它的父类。
SetTextBuf方法
对应对象:Tcontrol
声明:procedure SetTextBuf(Buffer:Pchar);
功能:SetTextBuf方法使一个缓冲区中的文字拷贝到一个控件中。
Buffer是一个指向以空字符结束的字符串。
例子:
procedure Tform1.Button2Click(Sender:TObject);
var MyBuffer:Pchar;
MyBufSize:Integer;
Begin
MyBufSize:=Button1.GetTextLen;
Button1.GetTextBuf(MyBuffer,MyBufSize);
StatusBar1.SetTextBuf(MyBuffer);
End;
SetZOrder方法
对应对象:Tcontrol
声明:procedure SetZOrder(TopMost:Boolean);dynamic;
声明:Trect=record
case Integer of
0:(Left,Top,Right,Bottom:Integer);
1:(TopLeft,BottomRight:Tpoint);
end;
procedure UpdateBoundsRect(const R:Trect);
功能:UpdateBoundsRect方法改变控件的Top,Left,Width和Height属性,但是没有更新控件的屏幕图像。
OnClick事件
对应对象:Tcontrol
声明:TnotifyEvent=procedure(Sender:Tobject) of object;
property:TnotifyEvent;
功能:OnClick事件在鼠标指针点击控件时发生。
当用户使用鼠标在控件上时点击鼠标按钮激发一个控件,或用户通过其它的操作触发OnClick事件。这个事件是应用程序使用最多的一个事件。用户可以为OnClick事件的处理程序设置为运行的过程,也可以在设计时,在大小探测器中为一个控件选择Onlick事件来完成操作。
OnDblClick事件
对应对象:Tcontrol
声明:TnotifyEvent=procedure(Sender:Tobject) of object;
property OnDblClick:TnotifyEvent;
功能:OnDblClick事件当用户双击控件时发生。在用户在一个控件上双击鼠标时将引发OnDblClick事件。用户可以为一个OnDblClick事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDblClick事件来完成操作。
OnDragDrop事件
对应对象:Tcontrol
声明:TdragDropEvent=procedure(Sender,Source:Tobject;X,Y:Integer) of object;
property OnDragDrop:TdragDropEvent;
功能:OnDragDrop事件当一个被拖动的对象被放置到控件上时发生。Sender参数说明了将被放置对象的控件的标识符。Source参数说明了被拖动放置的对象。坐标参数说明了对象被放置到控件的位置。用户可以为一个OnDragDrop事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDragDrop事件来完成操作。
例子:
type
Tform1=class(Tform)
Panel1:Tpanel;
Image1:Timage;
Procedure MyDragDrop(Sender,Source:Tobject;X,Y:Integer);
Procedure MyDragOver(Sender,Source:Tobject;X,Y:Integer;State:TdragState;var Accept:Boolean);
Private
{Private declarations}
Public
{Public declarations}
end;
var
Form1:Tform1;
Implementation
{$R *.DFM}
procedure Tform1.MyDragDrop(Sender,Source:Tobject;X,Y:Integer);
begin
if Soruce is Timage then
begin
TImage(Source).Parent:=Panel1;
TImage(Source).Left:=X;
Timage(Source).Top:=Y;
End;
End;
Procedure Tform1.MyDragOver(Sender,Source:Tobject;X,Y:Ingeger;State:TdragState; var Accept:Boolean);
Begin
if Soruce is Timage then begin
Timage(Source).DragCursor:=crCross;
Accept:=True;
End;
End;
Procedure Tform1.FormCreate(Sender:Tobject);
Begin
Panel1.OnDragDrop:=Form1.MyDragDrop;
Panel1.OnDragOver:=Form1.MyDragOver;
End;
OnDragOver事件
对应对象:Tcontrol 声明:TdragState=(dsDragEnter,dsDragLeave,dsDragMove); TdragOverEvent=procedure(Sender,Source:Tobject;X,Y:Integer;State:TdragState;var:Boolean) of object; 功能:OnDragOver事件在一个控件上拖动对象时发生。 当用户在控件上拖动一个对象时,OnDragOver事件将发生。Sender说明了控件的标识符。Soruce参数说明被拖动的对象。坐标参数说明了被拖动对象在控件坐标上的位置。Accept参数说明了控件是否允许被拖动的对象放置在它的上面。如果Accept参数被设置为真,那么将使控件接受对象的放置。否则不接受。用户可以为一个OnDragOver事件的处理程序设置为一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnDragOver事件来完成操作。 例子:参见OnDragDrop事件的例子。 OnEnddrag事件 对应对象:Tcontrol 声明:TendDragEvent=procedure(Sender,Target:Tobject;X,Y:Integer) of object; property OnEndDrag:TendDragEvent; 功能:OnEndDrag事件在一个拖动的操作停止时发生。 当控件接受一个被拖动的对象,或者用户取消了拖动操作时,用户可取消拖动操作。Sender参数是被拖动的对象。Target是鼠标对应的控件,当一个拖动的操作停止时,它将变为被拖动的对象。坐标是使用Target控件的坐标用来说明被拖动的对象在当前的位置。用户可以为一个OnEndDrag事件的处理程序设置一个运行过程,也可以在设计时,在大小探测器中为一个控件选择OnEndrag事件来完成操作。 例子: type Tform1=class(Tform) Panel1:Tpanel; Image1:Timage; Procedure MyEndDrag(Sender,Target:Tobject;X,Y:Integer); Private {Private declarations} public {Public declarations} end; var Form1:tForm1; Implementation {$R *.DFM} procedure Tform1.FormCreate(Sender:Tobject); begin Image1.OnEndDrag:=Form1.MyEndDrag; End; Procedure Tform1.MyEndDrag(Sender,Target:Tobject;X,Y:Integer); Begin If Target is Tpanel then StatusBar1.Panels[1].text:=’Drag ended on panel.’ Else Statusbar1.panels[1].text:=’Drag did not end on panel.’; End; OnMouseDown事件 对应对象:Tcontrol 声明:TMouseButton=(mbLeft,mbRight,mbMiddle); TshiftState=set of ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble); TMouseEvent=procedure(Sender:Tobject;Button:TmouseButton;Shift:Tshiftstat e;X,Y:Integer) of object; Property OnMouseDown:TmouseEvent; 功能:OnMouseDown事件当在控件上点击鼠标时激发。 Sender参数用来说明鼠标点击时,鼠标下面的那一个控件。Button参数说明了使用哪一个鼠标的按钮,此变量是属于TmouseButton类型,有效时为mbLeft,mbRight和mbMiddle。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意的组合,如果没有使用修正键,那么Shift将被设置成为[].坐标的参数使用了Sender控件坐标以指出点击时鼠标的位置。用户可以为一个OnMouseDown事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseDown事件来完成操作。 例子: type Tform1=class(Tform) Procedure MyMouseDown(Sender:Tobject;Button:TmouseButton:Shift;TshiftState;X,Y:Integer); Private {Private declarations} public {public declarations} end; var Form1:Tform1; Implementation {$R *.DFM} procedure Tform1.FormCreate(Sender:Tobject); begin Form1.MyMouseDown:=Form1.MyMouseDown; End; Procedure Tform1.MyMouseDown(Sender:Tobject;Button:TmouseButton;Shift:TSHiftState;X,Y:Integer); Begin StatusBar1.Panels[0].Text:=’MouseDown on Form:’+IntToStr(X)+’,’+IntToStr(Y); End; OnMouseMove事件 对应对象:Tcontrol 声明:TshiftState=set of(ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble); TmouseMoveEvent=procedre(Sender:Tobject;Shift:TshiftState;X,Y:Integer) of object; Property OnMouseMove:TmouseMoveEvent; 功能:OnMouseMove事件当鼠标指针在控件上移动时发生。 当鼠标指针通过每一个控件时,将连续地发生OnMouseMove事件。这个事件的发生将不需要鼠标的点击。Sender参数说明了发生事件的控件。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意的组合,如果没有使用修正键那么Shift将被设置成为[].在事件发生时坐标参数将使用控件的坐标系来说明鼠标的位置。用户可以为一个OnMouseMove事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseMove事件来完成操作。 例子: type Tform1=class(Tform) StatusBar1:TstatusBar; Procedure MyMouseMove(Sender:Tobject;Shift:TshiftState;X,Y:Integer); Private {private declarations} public {public declarations} end; var Form1:Tform1; Implementation {$R *.DFM} procedure Tform1.FormCreate(Sender:Tobject); begin Form1.OnMouseMove:=Form1.MyMouseMove; End; Procedure Tfrom1.MyMouseMove(Sender:Tobject;Shift:TshiftState;X,Y:Integer); Begin StatusBar1.Panels[2].Text:=’MouseMove on Form:’+IntToStr(X)+’,’+IntToStr(Y); End; |
OnMouseUp事件
对应对象:Tcontrol
声明:TmouseButton=(mbLeft,mbRight,mbMiddle);
TshiftState=set of(ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble);
TmouseEvent=procedure(Sender:Tobject;Button:TmouseButton;Shift:TshiftStatus;X,Y:Integer) of object;
Property OnMouseUp:TmouseEvent;
功能:OnMouseUp事件当用户点击一个鼠标的按钮时发生。在任何时候用户点击了按钮时,这个事件总是会发生。它说明了用户点击了哪一个按钮,在用户释放按钮时指明按钮指针的位置。Shift参数是ssShift,ssAlt,ssCtrl,ssLeft,ssRight,ssMiddle,ssDouble这些参数的任意组合,如果没有使用修正键那么Shift将被设置成为[]。Button参数说明了是用户释放的是哪一个按钮,它可以是mbLeft,mbRight,mbMiddle三个值:左按钮、右按钮、中间按钮。坐标参数说明了在释放鼠标按钮时,鼠标指针在控件坐标中的位置。用户可以为一个OnMouseUp事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnMouseUp事件来完成操作。
例子:
type
Tform1=class(Tform)
Procedure MyMouseUp(Sender:Tobject;Button:TmouseButton;Shift:TshiftState;X,Y:Integer);
Private
{private declarations}
public
{public declarations}
end;
var
Form1:Tform1;
Implementation
{$R *.DFM}
procedure Tform1.FormCreate(Sender:Tobject);
begin
Form1.OnMouseUp:=Form1.MyMouseUp;
End;
Procedure Tform1.MymouseUp(Sender:Tobject;Button:TmouseButton;Shift:TshiftState;X,Y:Integer);
Begin
StatusBar1.Panels[0].Text:=’MouseUp on Form:’+IntToStr(X)+’,’+IntToStr(Y);
End;
OnStartDrag事件
对应对象:Tcontrol
声明:TstartDragEvent=procedure (Sender:Tobject;var DragObject:TdragObject) of object;
property OnStartDrag:TstartDragEvent;
功能:OnStartDrag事件在控件释放操作发生时点发生。当用户在一个控件上放置鼠标并且点击了按钮以便对控件进行拖动时,OnStartDrag事件将被触发。DragObject参数说明了被拖动的目标。用户可以为一个OnStartDrag事件的处理程序设置一个运行过程,也可以设计时,在大小探测器中为一个控件选择OnStartDrag事件来完成操作。
例子:
type
Tform1=class(Tform)
StatusBar1:Tstatusbar;
Procedure MyStartDrag(Sender:Tobject;var DragObject:TdragObject);
Private
{private decalrations}
public
{public declarations}
end;
var
Form1:Tform1;
Implementation
{$R *.DFM}
procedure Tform1.FormCreate(Sender:Tobject);
begin
Image1.OnStartDrag:=Form1.MyStartDrag;
End;
Procedure Tform1.MyStartDrag(Sender:Tobject;var DragObject:TdragObject);
Begin
StatusBar1.Panels[1].Text:=’Drag Started.’;
End;