窗体的显示与隐藏:
Form2.Show;//显示该窗体,是过程,代码会继续往下执行 Form2.ShowModal{显示该窗体,是函数,该窗体显示时其他窗体不能进行任何操纵。 不*该窗体,代码不会往下执行。该函数有一个整型返回值, 0代表mrNone,1代表mrOK,2代表mrCancel}
Hide;//隐藏当前显示的窗体
窗体中子组件的焦点设置:
FocusControl(Button1);//指定窗体上某个组件是否获得焦点,参数为所有可视化组件
Edit1.SetFocus;//指定当前要领地址的组件获得焦点
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin //该要领可以凭据指定的Order挨次获取窗体中组件的焦点 if key = #13 then Self.FindNextControl(Self.ActiveControl,True,True,False).SetFocus; end;
对窗体中组件的查找:
Control属性是一个组件数组,用来存储窗体中的所有子组件。
property Controls[Index: Integer]: TControl read GetControl;
Index参数为窗体中组件的索引值。
示例:
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin {试想如果一个一个设置窗体中同类子组件的可用不成用,会很麻烦} for i=0 to Self.ControlCount-1 do //子组件数量 begin if Self.Controls[i] is TEdit then TEdit(Self.Controls[i]).Enabled:= False; end; end;
TControl、TComponent可参考面对东西编程分类下。
FindChildControl要领用于查找窗体中的子组件,,并返回子组件的TControl类。
function TWinControl.FindChildControl(const ControlName: string): TControl;
FindComponent要领查找窗体中的子组件,并返回子组件的TComponent类
function TComponent.FindComponent(const AName: string): TComponent;
示例:
procedure TForm1.Button1Click(Sender: TObject); var i: Integer; const nameprefix = ‘Edit‘;//用于创建的TEdit组件前缀 begin button1.Enabled:= false; for i:= 0 to 10 do begin TEdit.Create(Self).Name:= nameprefix+ IntToStr(i); with TEdit(FindComponent(nameprefix+ IntToStr(i))) do begin if i mod 2 <> 0 then Left:= 30 else Left:= 230; if (i mod 2 = 0) then Top:= (i-1)*20 else top:= i*20; Parent:= Self; end; end; end;
窗体坐标的转换:
ClientToScreen要领用于将客户坐标转换成屏幕坐标
function TControl.ClientToScreen(const Point: TPoint): TPoint;
参数Point是一个布局类型,该布局类型制定了坐标X 和Y,该要领返反转展转换后的屏幕坐标值。
ScreenToClient要领用于将屏幕坐标转换成客户坐标
function TControl.ScreenToClient(const Point: TPoint): TPoint;
参数Point是一个布局类型,该布局类型制定了坐标X 和Y,该要领返反转展转换后的客户坐标值。
ClientToParent要领用于将客户坐标转换为父类的坐标
function TControl.ClientToParent(const Point: TPoint; AParent: TWinControl): TPoint;
参数AParent是要转换坐标的父类组件,默认值为空,此时Aparent为当前组件的直接父类。
对1024x768的屏幕辨别度,假设我们的游戏窗口Clent巨细为800x600
X标的目的为0到1023个像素点,y标的目的为0到767个像素点
屏幕的高 Screen,height=1024
屏幕的高 Screen,width=768
界说rect:TRect;
用以下API函数得到窗口的对角位置
GetWindowRect (h, rect); 窗口句柄为h,
用以下API函数得到窗口Clent的对角位置
GetClientRect(h, rect); 窗口句柄为h,
这里的位置是相对全屏图的原点(0,0)。