
| 出版日期:2000-12-18 总期号:982 本年期号:94 |
|
Delphi开发应用程序答疑
邱宗英 问:在应用程序中,不利用APE函数,能否实现从.INI文件中读写字符? 答:通常情况下,我们都是利用Windows的API函数来实现读写.INI文件的,但我们不用API函数也能实现从.INI文件中读写字符。源程序如下: 从.INI文件中获取字符的方法: var MyIni: TIniFile; begin MyIni := TIniFile.Create('WIN.INI');//调用的文件名 edit1.text:=MyIni.ReadString('Desktop', 'Wallpaper', '');//取得字符 end; 向.INI文件中写入字符的方法: var MyIni: TIniFile; begin MyIni := TIniFile.Create('WIN.INI');//调用的文件名 DelphiIni.WriteString('Desktop', 'Wallpaper', 'c:\test.bmp'); end; 问:在Delphi应用程序中,如何实现字符串的逆排序? 答:这并不是一个复杂问题,但却是常常碰到,我们可以自己设计一个字符串逆排序函数,并在应用程序中调用它。源程序如下: function ReverseString( s : string ) : string; var i : integer; s2 : string; begin s2 := ''; for i := 1 to Length( s ) do begin s2 := s[ i ] + s2; end; Result := s2; end; 问:Delphi应用程序开发中,如何屏蔽屏幕保护程序? 答:如果你的程序需要持续运行,你需要在运行时暂时关闭屏幕保护程序,这时我们可以编程自动实现屏蔽屏幕保护程序。程序如下: 在“Public declarations”部分添加如下代码: procedure AppMessage( var Msg : TMsg; var bHandled : boolean ); 在“implementation”部分添加如下代码: procedure TForm1.AppMessage( var Msg : TMsg; var bHandled : boolean ); begin if((WM_SYSCOMMAND = Msg.Message) and (SC_SCREENSAVE = Msg.wParam)) then bHandled := True; end; 问:需要Windows在启动时自动运行开发的Delphi应用程序,如何实现呢? 答:我们只需要将应用程序的路径添加到注册表“HKEY_LOCALMACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run”位置中,即可实现该功能,在程序中我们可以使用TRegIniFile或者TRegistry来实现。比如我们要运行OICQ,我们可利用如下代码: Uses Registry; Var RegF:TRegistry; begin RegF:=TRegistry.Create; RegF.RootKey:=HKEY_LOCAL_MACHINE; try RegF.OpenKey'SOFTWARE\Microsoft\Windows\CurrentVersion\Run',True); RegF.WriteString('OICQ','"D:\Program Files\Oicq\Oicq.exe"'); except … End; RegF.Close; RegF.Free; end; 问:在elphi应用程序中,如何用代码实现文件关联? 答:我们想用代码实现文件关联,就需要从注册表入手来加以解决。 比如下面的代码会把后缀是.jul的文件和Notepad关联在一起: procedure TForm1.Button1Click(Sender: TObject); var lphKey: HKEY; sKeyName: string; sKeyValue: string; begin sKeyName := 'JulFile'; sKeyValue := '个人文档'; RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey); RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0); sKeyName := '.Jul'; sKeyValue := 'JulFile'; RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey); RegSetValue(lphKey, '', REG_SZ, pchar(sKeyValue), 0); sKeyName := 'JulFile'; sKeyValue := 'c:\Win98\NotePad.exe %1'; RegCreateKey(HKEY_CLASSES_ROOT, pchar(sKeyName), lphKey); RegSetValue(lphKey, 'shell\open\command', REG_SZ, pchar(sKeyValue), MAX_PATH); end; |
|||||||||||||||||