📄 128.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>CTerm非常精华下载</title>
</head>
<body bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="577">
<tr><td width="32%" rowspan="3" height="123"><img src="DDl_back.jpg" width="300" height="129" alt="DDl_back.jpg"></td><td width="30%" background="DDl_back2.jpg" height="35"><p align="center"><a href="http://bbs.tsinghua.edu.cn"><font face="黑体"><big><big>水木清华★</big></big></font></a></td></tr>
<tr>
<td width="68%" background="DDl_back2.jpg" height="44"><big><big><font face="黑体"><p align="center"> Delphi编程 (BM: strayli FlyingBoy) </font></big></big></td></tr>
<tr>
<td width="68%" height="44" bgcolor="#000000"><font face="黑体"><big><big><p align="center"></big></big><a href="http://cterm.163.net"><img src="banner.gif" width="400" height="60" alt="banner.gif"border="0"></a></font></td>
</tr>
<tr><td width="100%" colspan="2" height="454"> <p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="129.htm">下一篇</a>]
<hr><p align="left"><small>控制窗体 <br>
<br>
如何在 Delphi 中把 Form 控制成不能放大/缩小/移动/关闭?1、把 Form 的 <br>
BorderIcons 下的几个子属性值全改为 False;2、修改 Form 的 BorderStyle 的值为 <br>
bsSingle ;3、为了让窗口不能移动,可以自已拦下 WM_NCHITTEST 消息, 对该消息的 <br>
处理为:一概回应鼠标点在窗口的 Client 区域, 相信这个视窗就呆呆的不会动了。 <br>
详情可以查一下 Win32API Help 的 CreateWindow() 与 WM_NCHITTEST 的说明。 <br>
下面是一个例子, 请参考看看: <br>
unit Unit1; <br>
interface <br>
uses <br>
Windows, Messages, SysUtils, Classes, Graphics, Controls,Forms, Dialogs, <br>
StdCtrls; <br>
type <br>
TForm1 = class(TForm) <br>
Button1: TButton; <br>
procedure Button1Click(Sender: TObject); <br>
private <br>
{ Private declarations } <br>
procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST; <br>
public <br>
{ Public declarations } <br>
end; <br>
end; <br>
var <br>
Form1: TForm1; <br>
implementation <br>
{$R *.DFM} <br>
procedure TForm1.Button1Click(Sender: TObject); <br>
begin <br>
Close; // 不可少, 因为已经没有其他方法能关闭此窗口了 <br>
end; <br>
<br>
procedure TForm1.WMNCHitTest(var Msg: TMessage); <br>
begin <br>
inherited; // 这样,移动就不可能了... <br>
Msg.Result := HTCLIENT; <br>
end; <br>
end. <br>
<br>
限制FORM的大小 <br>
<br>
使用过DELPHI的朋友都会注意到DELPHI本身最上面的窗口, <br>
当它极大时只占屏幕的一小部分,它是如何实现的呢,请看下面的说明: <br>
1)在FORM私有声明部分加上如下一行: <br>
procedure WMGetMinMaxInfo( var Message:TWMGetMinMaxInfo ); message <br>
WM_GETMINMAXINFO; <br>
2)在声明部分加上如下几行: <br>
procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo ); <br>
begin <br>
with Message.MinMaxInfo^ do <br>
begin <br>
ptMaxSize.X := 200; {最大化时宽度} <br>
ptMaxSize.Y := 200; {最大化时高度} <br>
ptMaxPosition.X := 99; {最大化时左上角横坐标} <br>
ptMaxPosition.Y := 99; {最大化时左上角纵坐标} <br>
end; <br>
Message.Result := 0; {告诉Windows你改变了 minmaxinfo} <br>
inherited; <br>
end; <br>
<br>
动态修改显示器分辨率 <br>
<br>
Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是 <br>
EnumDisplaySettings() 和ChangeDisplaySettings(),下面这个例子就是了 <br>
<br>
function DynamicResolution(X, Y: word): BOOL; <br>
var <br>
var <br>
lpDevMode: TDeviceMode; <br>
begin <br>
Result := EnumDisplaySettings(nil, 0, lpDevMode); <br>
if Result then <br>
begin <br>
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT; <br>
lpDevMode.dmPelsWidth := X; <br>
lpDevMode.dmPelsHeight := Y; <br>
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL; <br>
end <br>
end; <br>
<br>
procedure TForm1.Button1Click(Sender: TObject); <br>
begin <br>
if DynamicResolution(640, 480) then <br>
ShowMessage('Now is 640*480'); <br>
end; <br>
<br>
procedure TForm1.Button2Click(Sender: TObject); <br>
begin <br>
if DynamicResolution(800, 600) then <br>
ShowMessage('Now is 800*600'); <br>
end; <br>
<br>
回车替Tab下移控件 <br>
<br>
需要用回车键代替TAB键下移一个控件时,把KeyPress设为True,加入下列代码拦截击 <br>
键: <br>
Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char); <br>
Begin <br>
if key=#13 then { 判断是按执行键} <br>
if not (ActiveControl is TDbgrid) Then <br>
Begin { 不是在TDbgrid控件内} <br>
key:=#0; <br>
perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件} <br>
end else <br>
if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内} <br>
begin <br>
With TDbgrid(ActiveControl) Do <br>
if Selectedindex<(FieldCount-1) then <br>
Selectedindex:=Selectedindex+1{ 移动到下一字段} <br>
else Selectedindex:=0; <br>
end; <br>
End; <br>
ex:=0; <br>
end; <br>
End; <br>
<br>
模拟按键 <br>
<br>
让 WIN95 模拟按了一个按键,例如按下 ENTER或者 TAB 键? <br>
PostMessage(Object.Handle, WM_KEYDOWN, VK_TAB, 0); <br>
<br>
隐藏桌面上的图标 <br>
<br>
var <br>
hDesktop : THandle; <br>
begin <br>
hDesktop := FindWindow('Progman', nil); <br>
ShowWindow(hDesktop, SW_HIDE); <br>
end; <br>
</small><hr>
<p align="center">[<a href="index.htm">回到开始</a>][<a href="100.htm">上一层</a>][<a href="129.htm">下一篇</a>]
<p align="center"><a href="http://cterm.163.net">欢迎访问Cterm主页</a></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -