发信人: lofe ()感激生活(), 信区: BorlandDev
标  题: 屏蔽系统功能键 (转载)
发信站: 哈工大紫丁香 (2000年09月01日18:51:03 星期五), 站内信件

【 以下文字转载自 VisualProgram 讨论区 】
【 原文由 alias 所发表 】
下代码: 
Var 
temp:integer; 
begin 
SystemParametersInfo(Spi_screensaverrunning,1,@temp,0); 
end; 
  当你要恢复功能键时用以下代码: 
Var 
Temp:integer; 
begin 
SystemParametersInfo(spi_screensaverrunning,0,@temp,0); 
end; 
 
                                 分行提示 
 
  无论你什么时候要分行显示的时候,只需要在字符串中间加入“#13”就可以了, 
但在属性框里却不能这么干,以下就几种控件加以说明: 
begin 
Label1.caption :='垂'+#13+'直'+#13+'显'+#13+'示'; 
Edit1.Hint :='输入框说明:'+#13+'文本的输入'; 
end; 
 
                                 任意打印 
 
  有时我们要打印任意排列的表或往已经印好的登记表上对号入座写上数据时,可 
以新建一个窗体(假设为Form1),再把Form1的BorderStyle设为bsNone、AutoScroll 
设为True,接下来再创建一个新窗体(假设为Form2),再建个按钮Button1,编写代 
码: 
procedure TForm2.Button1Click(Sender: TObject); 
begin 
Form1.Width :=900; 
Form1.Height :=800; 
Form1.Print; 
end; 
  接下来你在Form1上对应的位置写上数据,运行后按Button1就会一五一十的打印 
下来了。 
 
                            运行时生成控件 
 
  ㈠、运行时生成可视控件:以下以TEdit 控件为例 
1.在Form的Public中定义TEdit控件 
  Edit1:TEdit; 
2.在需要生成的地方加入以下代码: 
  Edit1:=TEdit.Create(Self); 
  Edit1.Parent:=Form1; 
  Edit1.Left ?:=20; 
  Edit1.Top :=20; 
  Edit1.Text :='Edit1 Text'; 
3.使用完毕后,释放分配的资源 
  if? Assigned(Edit1) then Edit1.Free; ? 
  ㈡、运行时生成非可视控件:以下以 TTimer控件为例 
1.在Form的Public中定义TTimert控件 
  Timer1:TTimber; 
2.在需要生成的地方加入以下代码: 
  Timer1:=TTimer.Create(Self);  
  Timer1.OnTimer:=YourAction; 
YourAction是自己定义的OnTimer事件,使用 
procedure TForm1.YourAction(Sender:TObject); 完成 
3.使用完毕后,释放分配的资源  
  if? Assigned(Timer1) then Timer1.Free; ?  
 
                            获得命令行参数 
 
1. 取得命令列参数的个数: ParamCount 函数 
2. 呼叫 ParamStr(0), 传回执行档的档名(含路径) 
3. 呼叫 ParamStr(n), 传回第n个参数的内容 
例子: 
procedure TForm1.FormCreate(Sender: TObject); 
var 
 ix: integer; 
begin 
 Memo1.Lines.Clear; 
 if ParamCount = 0 then 
  Memo1.Lines.Add('??统??.') 
 else 
 begin 
  Memo1.Lines.Add('档名:' + ParamStr(0)); 
  for ix := 1 to ParamCount do 
  Memo1.Lines.Add(ParamStr(ix)); 
 end; 
end; 
 
                          查阅可视窗口标题 
 
下面只是举出一个例子提供参考: 
运用API函数GetWindow()配合GetWindowText()逐一查出各视窗的标题 
1. File | New Project 开始一个新的工程 
2. 在 Form1 中安排 Button 与 Memo 各一 
3. 在 Button1 的 OnClick 事件中撰写程式如下: 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 hCurrentWindow: HWnd; 
 szText: array[0..254] of char; 
begin 
 hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST); 
 while hCurrentWindow <> 0 do 
 begin 
 if GetWindowText(hCurrentWindow, @szText, 255)>0 then 
 Memo1.Lines.Add(StrPas(@szText)); 
 hCurrentWindow:=GetWindow(hCurrentWindow, GW_HWNDNEXT); 
 end; 
end;  

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: mig.bbs@smth.org]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: club.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:19.245毫秒