关于TApplication详解(转载)

IORILI 2003-08-27 03:37:02
加精
今天发现了一片自认为不错的文章,贴出来给大家看看。
...全文
216 48 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
pzoon 2003-09-04
  • 打赏
  • 举报
回复
o
IORILI 2003-09-01
  • 打赏
  • 举报
回复
人气不望呀
IORILI 2003-08-28
  • 打赏
  • 举报
回复
ayukowa(野狼) ( ) 没有问题 呵呵 不过现在有点忙
IORILI 2003-08-28
  • 打赏
  • 举报
回复
ayukowa(野狼) ( ) 没问题,但是现在有点忙,:)
IORILI 2003-08-28
  • 打赏
  • 举报
回复
没问题,不过现在有点忙,在作详细设计,作不完要扣工资的:(
ayukowa 2003-08-28
  • 打赏
  • 举报
回复
搂主可否直接发给我
ayukowa@163.com
fansnaf 2003-08-28
  • 打赏
  • 举报
回复
学习
myhero811104 2003-08-28
  • 打赏
  • 举报
回复
mark
zgq19801123 2003-08-28
  • 打赏
  • 举报
回复
辛苦了
还有吗?!
reallike 2003-08-28
  • 打赏
  • 举报
回复
根本没法复制。。。。。。
wdsimon 2003-08-28
  • 打赏
  • 举报
回复
mark
IORILI 2003-08-28
  • 打赏
  • 举报
回复
贴完了,版排得不好,呵呵
IORILI 2003-08-28
  • 打赏
  • 举报
回复

六、TColorDialog

TCommonDialog--TColorDialog

Color属性
对应对象:TColorDialog
声明:property Color:TColor default clBlack;
功能:Color属性用来确定在颜色对话框中选择哪一个颜色。当用户选择了一个新的颜色时,Color属性将被设置为新颜色的值。

例子:
//Change the color of the selected text when the user choose a
//color from the Color dialog box
procedure TForm1.sbColorClick(Sender: TObject);
begin
Colordialog1.Execute;
RichEdit1.SelAttributes.Color:=Colordialog1.Color;
End;

CustomColors属性
对应对象:TColorDialog
声明:property CustomColors:TStrings;
功能:CustomColors属性确定在颜色对话框中可以获得的一种自定义的颜色。CustomColors属性保存了一个字符串的列表,每一个字符串的格式是:ColorX=HexValue,其中ColorX是16个自定义的颜色中的一个,是从ColorA到ColorP,HexValue参数是一个十六进制的数值,它说明了构成颜色的所对应的RGB值。所以,对应于纯白色这个值是FFFFFF,000000是纯黑,使用Color0=000000说明了把纯黑色传递给颜色选择。当颜色对话框被关闭时,保存了对话框颜色的列表,以便用户可以在下一次使用对话框时使用自定义颜色。

例子:
procedure TForm1.sbColorClick(Sender: TObject);
var X:Integer;
begin
Colordialog1.CustomColers:= StrCustomColors;
Colordialog1.Execute;
RichEdit1.SelAttributes.Color:=Colordialog1.Color;
StrCustomColors:=Colordialog1.CustomColors;
//Save StrCustomColors to the registry or an INI file
//when the program exits…
end;

Options属性
对应对象:TColorDialog
声明: TColorDialogOption = (cdFullOpen, cdPreventFullOpen, cdShowHelp, cdSolidColor,
cdAnyColor);
TColorDialogOptions = set of TColorDialogOption;
property Options: TcolorDialogOptions default[];
功能:Options属性说明了颜色对话框的显示形式和选项。
以下列举了有效的选项值。

值 意 义

cdFullOpen 当颜色对话框被打开时显示了定制颜色的选项。
cdPreventFullOpen 使在对话框中的定义定制的颜色成为不可用,所以便用者不能定义新的颜色。
cdShowHelp 在对话框之中添加一个帮助按钮。
cdSolidColor 指引系统使用最近的纯颜色的选择。
cdAnyColor 允许使用者选择非纯的颜色(可以被近似的抖动)

缺省时所有的选项是被关闭的。

例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
ColorDialog1.Options:=[ cdFullOpen, cdShowHelp];
end;

OnClose事件
对应对象:TColorDialog
声明:property OnClose:TNotifyEvent;
功能:当一个对话框被关闭时,OnClose事件被引发。当对话框关闭时写入一个OnClose事件的句柄来完成指定的操作。
rehuo 2003-08-28
  • 打赏
  • 举报
回复
呵呵
辛苦了
IORILI 2003-08-28
  • 打赏
  • 举报
回复
FormCount属性
对应对象:TScreen
声明:property FormCount:Integer;
功能:FormCount属性包含了应用程序中屏幕上可以看到的窗体数目。它是只读型的。

例子:
//Get form count
procedure TForm1.Button1Click(Sender : TObject);
begin
Label1.Caption := ‘There is/are’ + IntToStr(Screen.FormCount) +
‘form(s) on the screen.’;
end;

Forms属性
对应对象:TScreen
声明:property Forms[Index:Integer] : TFonn;
功能:Forms属性对应了显示的窗体数组。在应用程序中的每一个窗体所对应的Forms数组中都给了一个确定的位置。程序创建的第一个窗体是Forms[0],第二个窗体是Forms[1],依此类推。Forms允许用户通过Index值访问应用程序的每—个窗体。

例子:
当按钮1被按击时,以下的代码加载了在屏幕上的所有的窗体名到ListBoxl上。
procedure TForm1.Button1Click(Sender : TObject);
var
I : integer;
begin
For I := 0 to Screen.FormCount – 1 do
ListBox1.Items.Add(Screen.Forms[I ].Name);
end;

Height属性
对应对象:TScreen
声明:property Height : Integer;
功能:Height属性包含有屏幕的高度。
Height属性是只读型的,包含有屏幕的垂直高度尺寸,并以象素来计数。

例子:
procedure TfrmScreenInfo.FormCreate(Sender : TObject);
begin
lblWidth.Caption := IntToStr(Screen.Width);
lblHeight.Caption := IntToStr(Screen.Height);
lblPixelsPerInch.Caption := IntToStr(Screen.PixelsPerInch);
end;

IconFont属性
对应对象:TScreen
声明:property IconFont : TFone;
功能:IconFont属性是说明了在文件选择对话框中,显示在图标上的标签的字体形式。

Imes属性
对应对象:TScreen
声明:property Imes : TStrings;
功能:Imes属性说明了在系统上安装的所有输入方法编辑器的例表。

Width属性
对应对象:TScreen
声明:property Width:Integer;
功能:Width属性说明了屏幕的宽度。这个属性是只读型的,包含有屏幕的水平尺寸,以象素来计数。示例:
with Screen do
for I := 0 to FormCount – 1 do
if Forms[I].Width > Width then Forms[I].Width := Width;

Create方法
对应对象:TScreen
声明:constructor Create(AOwner:TComponent);override;
功能:Create方法用来创建一个TScreen对象的实例。

Destroy方法
对应对象:TScreen
声明:destructor Destroy;override;
功能:Destroy方法用来消除一个TScreen对象的实例。

OnActiveControlChange事件
对应对象:TScreen
声明:TNotifyEvent = procedure(Sender :TObject)of object;
property OnActiveControlChange:TNotifyEvent;
功能:当屏幕的焦点从一个控件转换到另一个控件时发生OnActiveControlChange事件。如果每一次焦点的转换事件发生时用户希望应用程序处理一些操作的话,可以对OnActiveControlChange事件创建一个事件的处理代码来完成。当OnActiveCon-trolChange事件发生时,屏幕的激活控制属性的值将成为将要接收焦点的控件的属性值。

例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
Type
TForm1 = class(TForm)
RadioGroup1 : TRadioGroup;
RadioButton1 : TRadioButton;
RadioButton2 : TRadioButton;
RadioButton3 : TRadioButton;
CheckBox1 : TCheckBox;
CheckBox2 : TCheckBox;
Button1 : TButton;
Button2 : TButton;
Procedure FormCreate(Sender : TObject);
private
{Private declarations}
public
//Manually added method declaration
Procedure FocusChanged(Sender : TObject);
end;
var
Form1 : TForm1;
implementation
{$R *.DFM}

//Create an event handler for OnActiveControlChange
procedure TForm1.FormCreate(Sender : TObject);
begin
Screen.OnActiveControlChange := FocusChanged;
end;

//Respond to OnActiveControlChange events
procedure TForm1.FocusChanged(Sender : TObject);
begin
if Screen.ActiveControl = Button2 then
Button1.Enabled := False;
Else Button1.Enabled := True;
end;
end.

OnActiveFormChange事件
对应对象:TScreen
声明:TNotifyEvent = procedure(Sender:TObject) of object;
property OnActiveFormChange:TNotifyEvent;
功能:在激活的窗体被改变之前OnActiveFormChange事件发生。用户可以为OnActiveFormChange事件创建一个认为代码来实现在窗体改变之前希望完成的操作。

例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
Type
TForm1 = class(TForm)
RadioGroup1 : TRadioGroup;
RadioButton1 : TRadioButton;
RadioButton2 : TRadioButton;
RadioButton3 : TRadioButton;
CheckBox1 : TCheckBox;
CheckBox2 : TCheckBox;
Button1 : TButton;
Button2 : TButton;
Label1 : TLabel;
procedure FormCreate(Sender : TObject);
procedure Button1Click(Sender : TObject);
private
{Private declarations}
public
//Manually added method declaration
Procedure FormChanged(Sender : TObject);
end;
var
Form1 : TForm1;
implementation
uses Unit2;
{$R *.DFM}

//Create an event handler for OnActiveFormChange
procedure TForm1.FormCreate(Sender : TObject);
begin
Screen.OnActiveFormChange := FormChanged;
end;

//Handle the OnActiveFormChange event
procedure TForm1.FocusChanged(Sender : TObject);
begin
Label1.Caption := ‘Active Form is’ + Screen.ActiveForm.Name;
end;

//Show Form2 when the button is pressed
procedure TForm1.Button1Click(Sender : TObject);
begin
Form2.Show;
end;
end.
IORILI 2003-08-28
  • 打赏
  • 举报
回复
ActiveControl属性
对应对象:TScreen
声明:property ActiveControl :TWinControl;
功能:ActiveControl属性用来确定有焦点的控件。
在任何时候,整个屏幕上只有一个控件有焦点。如果控件在应用程序的外面,则用户不能访问它。一般ActiveControl被限制在应用程序的内部。

例子:
//Create a form with many controls,change the Interval property
//of the Timer to 500-every time a control is selected,the Form
//Caption changes to indicate which control has the foucus
procedure TForml.TimerlTimer(Sender:TObject);
begin
Form1.Caption := Screen.ActiveControl.Name;
end;

ActiveForm属性
对应对象:TScreen
声明:property ActiveForm :TForm;
功能:ActiveForm属性用来确定被激活的窗体是哪一个窗体。这个属性是只读型的。它指出具有焦点的窗体。

例子:
//Create a program with two forms-Show Form2 by
//clicking a button on the first form. This method will
//put the name of the active form on Form2’s caption
procedure TForm2.Timer1Timer(Sender : TObject);
begin
Form2.Caption := Screen.ActiveForm.Name;
end;

Cursor属性
对应对象:TScreen
声明: property Cursor:TCursor;
功能:Cursor属性用来确定光标的形状。
改变Cursor属性的值将对应地改变应用程序中用户区域的光标形状。
以下说明使用的TCursor类型时的可能值:

类型常数 值 功 能
crDefautl 0 依据ActiveControl。
crNone -1 无光标。
crArrow -2 标准光标。
crCross -3 十字光标。
crIBeam -4 I形光标。
crSize -5 十字箭头光标。
crSizeNESW -6 右斜方箭头光标。
crSizeNS -7 上下方箭头光标。
crSizeNWSE -8 左斜方箭头光标。
crSizeWE -9 左右箭头光标。
crUpArrow -10 向上箭头光标。
crHourGlass -11 等待光标。
crDrag -12 箭头加文本光标。
crNoDrop -13
crHSPlit -14 左右移动表格线光标。
crVSplit -15 上下移动表格线光标。
crMultiDrag -16 箭头加多文本光标。
crSQLWait -17 SQL加等待光标。
crNo -18
crAppStart -19 等待加箭头光标。
crHelp -20 箭头加问号光标。
crHandPoint -21 手光标。

例子:
procedure TForm1.FormCreate(Sender : TObject);
begin
Screen.Cursor := crUpArrow;
end;

Cursors属性
对应对象:TScreen
声明:property Cursors [Index:Integer] : HCursor;
功能:Cursors属性是用户可以使用的光标数组。
Cursors属性允许用户在应用程序中加载自定义的光标,全局光标的预定义集由TCursor来定义。前面介绍的Cursor属性中说明了TCursor类的光标元素。如果用户希望创建自己的光标,可以使用Delphi的图形编辑器来绘制光标,并且在源代码中说明一个常量来表示光标在Cursors数组中的位置,使用系统的API函数比LoadCursor以便使这个光标成为程序共享的资源。例如,设想一个用户定制的光标已经被加载到应用程序的资源中去,并且命名为NewCursor。以下的代码使这个光标在应用程序中是有效的,通过光标常数crMyCursor,并设置它是全局的。

例子:
implementation
{$R *.DFM}
const
crMyCursor = 5;
procedure TForm1.FormCreate(Sender : TObject);
begin
Screen.Cursors[crMyCursor] := LoadCursor(HInstance, ‘NewCursor’);
Cursor := crMyCursor;
end;

CustomFormCount属性
对应对象:TScreen
声明:property CustomFormCount : Integer;
功能:CustomFormCount说明了在屏幕上所显示的窗体号或属性页。

CustomForms属性
对应对象:TScreen
声明:property CustomForms [Index :Integer]:TCustomForm;
功能:CustomForms是一个所有的属性页和窗体的例表,它们是在当前的屏幕上显示。

DataModuleCount属性
对应对象:TScreen
声明:property DataModuleCount:Integer;
功能:DataModuleCount属性说明了在当前的应用程序中例示的数据模块的号。

DataModules属性
对应对象:TScreen
声明:property DataModules [Index:Integer]:TDataModule;
功能:DataModules是在当前应用程序中例示的所有数据模块的例表数组。

DefaultIme属性
对应对象:TScreen
声明:property DefaultIme:string;
功能:DefaultIme属性说明了输入方法编辑器的名,输入方法编辑器在TScreen对象被创建时被激活。

DefauItKbLayout属性
对应对象:TScreen
声明:property DefaultKbLayout:HKL;
功能:DefauItKbLayout属性是当应用程序开始运行时被激活的键盘版面所对应的窗口句柄。

Fonts属性
对应对象:TScreen
声明:property Fonts:TStrings;
功能:Fonts属性说明了包含在应用程序中可用的字体例表。Fonts属性是只读型的,它包含了屏幕支持的字体例表,应用程序可用访问。用户可以使用Fonts属性来确定某种字体是否可以被使用,进而确定所使用的字体。

例子:
//Display all of the available fonts
procedure TForm1.FormCreate(Sender : TObject);
begin
ListBox1.Sorted := True;
ListBox1.Items := Screen.Fonts;
end;
IORILI 2003-08-28
  • 打赏
  • 举报
回复
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;



五、Tscreen

Tobject—>TPersistent—>Tcomponent

Tscreen的属性: 从TComponent继承来的:
In Tscreen DestroyComponents
ActiveControl FindComponent
ActiveCustomForm FreeNotification
ActiveForm FreeOnRelease
Cursor GetParentComponent
Cursors HasParent
CustomFormCount InsertComponent
CustomForms RemoveComponent
DataModuleCount SafeCallExecption
DataModeles 从TPersistent继承来的:
DefaultIme Assign
DefaultKbLayout GetNamePath
Fonts 从TObject继承来的:
FormCount ClassInfo
Forms ClassName
Height ClassNameIs
IconFont ClassParent
Imes ClassType
PixelsPerInch CleanupInstance
Width DefaultHandler
从Tcomponent继承来的: Dispatch
ComObject FieldAddress
ComponentCount Free
ComponentIndex FreeInstance
Components GetInterface
ComponentState GetInterfaceEntry
ComponentStyle GetInterfaceTable
DesignInfo InheritsFrom
Name InitInstance
Owner InstanceSize
Tag MethodAddress
VCLComObject MethodName
NewInstance
TScreen的方法 TScreen的事件:
In TScreen In TScreen
Create OnActiveControlChange
Destroy OnActiveFormChange
myboor 2003-08-28
  • 打赏
  • 举报
回复
收藏
IORILI 2003-08-28
  • 打赏
  • 举报
回复
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;
IORILI 2003-08-28
  • 打赏
  • 举报
回复
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;
加载更多回复(28)

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧