⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00201.htm

📁 提供了Delphi编程的几个巧妙用法
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>1</title>
</head>

<body bgcolor="#000000" text="#FFFFFF" link="#FFFFFF">

<p align="left"><span style="BACKGROUND-COLOR: #ff0000"><a href="00201.zip">源程序下载</a></span><b><span style="background-color: #000080"><br>
</span><span style="background-color: #000000"><br>
</span><span style="background-color: #000080"><a name="1"></a>1:制作可分割的窗体(Form)</span></b> 
</p> 
 
<p>
	第一步:创建一个应用程序,保存为Unit为U00201.Pas,Form.Name = Form1,Progect为P00201.prg。<br>    
	第二步:在Form1上放置一个Panel1:Tpanel,设置Panel1.Align= alTop;在Panel1上按顺序分别一个Image1:TImage、Splitter1:TSplitter、Memo1:TMemo,Image1.Align = alLeft;Splitter.Align= alLeft;Memo1.Align= clClient ;<br>    
	第三步:在Form1的OnCreate的事件里,添加下面一段代码:<br>    
		procedure TForm1.FormCreate(Sender: TObject);<br>    
		begin<br>    
&nbsp;&nbsp;&nbsp; Image1.Picture.LoadFromFile('00201.bmp') ;<br>    
&nbsp;&nbsp;&nbsp; Memo1.Lines.LoadFromFile('00201.txt') ;<br>    
		end;<br>    
把上面的程序保存一下,你可以试一下。<br>   
<span style="background-color: #000000"><br>  
</span><b><span style="background-color: #000080"><a name="2"></a>2:制作透明的窗体(Form)</span></b><span style="background-color: #000080"><br> 
</span>  为了不影响测试后面一段程序,在Form1上放置一个Splitter2 : TSplitter,设置<br>    
Splitter2.Align=alTop ;将FORM变成透明的实质性手段就是拦截CMEraseBkgnd消息。<br>    
	第一步:在Form1的“Public”部分声明过程:<br>   
Procedure CMEraseBkgnd(var Message:TWMEraseBkgnd);Message WM_ERASEBKGND;<br>    
<br>    
	PROCEDURE Tform1.CMEraseBkgnd(var Message:TWMEraseBkgnd);<br>    
	Begin<br>    
&nbsp;&nbsp;&nbsp; brush.style:=bsClear;<br>   
&nbsp;&nbsp;&nbsp; Inherited;<br>  
	End ;<b><span style="background-color: #000080"><br>   
</span><span style="background-color: #000000"><br>   
</span><span style="background-color: #000080"><a name="3"></a>3:窗体(Form)上的坐标转换成相对于屏幕上的坐标<br> 
</span></b><br> 
	为了测试这个程序,只需要在Form1的OnMouseMove事件中添加如下代码:<br> 
	procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);<br>    
	Var<br>    
&nbsp;&nbsp;&nbsp; Tempstr : String ;<br>    
&nbsp;&nbsp;&nbsp; MyPoint: TPoint;<br>   
&nbsp;&nbsp;&nbsp; ScPoint: TPoint;<br>   
begin<br>   
&nbsp;&nbsp;&nbsp; TempStr := 'Form X='+IntToStr(X)+'  Form Y='+IntToStr(Y);<br>    
&nbsp;&nbsp;&nbsp; Caption := TempStr ;<br>    
<br>    
&nbsp;&nbsp;&nbsp; MyPoint.x:=X;<br>   
&nbsp;&nbsp;&nbsp; MyPoint.y:=Y;<br>   
&nbsp;&nbsp;&nbsp; ScPoint:=ClientToScreen(MyPoint);<br>   
<br>   
&nbsp;&nbsp;&nbsp; TempStr := 'Screen X='+IntToStr(ScPoint.x)+' Screen Y='+IntToStr(ScPoint.y);<br>    
&nbsp;&nbsp;&nbsp; Caption := Caption +'  '+TempStr ;<br>    
	end;<br>    
注:MyPoint,是相对于窗体(Form1)的坐标,ScPoint为相对于屏幕上的坐标,在上面的一段代码中,关键的函数就一个ClientToScreen,它的作用是把相对于窗体(Form)的坐标转换成相对于屏幕的坐标(converts the client coordinates of a specified point to screen coordinates.)。和这个函数相反的一个函数是ScreenToClient,你可以自己动手试试。<br>    
<br>    
<span style="background-color: #FF0000"><a href="00201.zip">源程序下载</a></span>    
</p>   
    
</body>    
    
</html>    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -