程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 應用編程實例簡介

Delphi 應用編程實例簡介

編輯:Delphi
1. 控制INI文件幾法

要利用.INI文件做程序有關數據的存儲工作,就需要能讀和寫.INI文件,所以列了如下方法給大家參考:
從.INI文件中獲取字符串
var
strResult:pchar;
begin
GetPrivateProfileString(
'Windows', // []中標題的名字
'NullPort', // =號前的名字
'NIL', // 如果沒有找到字符串時,返回的默認值
strResult, //存放取得字符
100, //取得字符的允許最大長度
'c:\forwin95\win.ini' // 調用的文件名
);
edit1.text:=strResult; //顯示取得字符串
從.INI文件中獲取整數
edit1.text:=inttostr(GetPrivateProfileInt(
'intl', // []中標題的名字
'iCountry', // =號前的名字
0,// 如果沒有找到整數時,返回的默認值
'c:\forwin95\win.ini' // 調用的文件名
));
向.INI文件寫入字符串
WritePrivateProfileString(
'Windows', // []中標題的名字
'load', // 要寫入“=”號前的字符串
'accca', //要寫入的數據
'c:\forwin95\win.ini' // 調用的文件名
);
向.INI文件寫入整數
WritePrivateProfileSection(
'Windows', // []中標題的名字
'read=100', // 要寫入的數據
'c:\forwin95\win.ini' // 調用的文件名
);
上面的方法是調用API函數,下面介紹另一種不用API從.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:\a.bmp');
end;

2.轉讓控制權

有時由於長時間的循環語句占用了cpu的處理權,無法運行 其他程序,照成死循環。這時用以下命令轉讓控制權,讓操作系統處理其他事件。
Application.ProcessMessages;

3.得到執行程序的目錄
SysUtils 單元中有 ExtractFileDir 與 ExtractFilePath兩個類似的函數, 用哪一個?沒有太大的關系。
  不過有以下的差別: ExtractFilePath 傳回值的最後一個字元是反斜槓“/”。
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(ExtractFileDir(Application.Exename));
// IE: c:\temp
ShowMessage(ExtractFilePath(Application.Exename));
// IE: c:\temp\
end;
相同點: 如果執行文件在根目錄下(如:C:\SAMPLE.EXE)的話, 兩者的傳回值相同, 且最後一個字符都是“/”。

4.打開已注冊文件

打開Windows已經注冊的文件其實很簡單,根據以下代碼定義一個過程:

procedure URLink(URL:PChar);
begin
ShellExecute(0, nil, URL, nil, nil, SW_NORMAL);
end;
在要調用的地方使用
URLink('Readme.txt');
如果是鏈接主頁的話,那麼改用
URLink('http://QQxw.yeah.Net');

5.得到Windows用戶名和序列號

如何得到Windows的用戶名稱和產品序列號呢?
1. 可以用 WNetGetUser() 這個函數來得到 user name;
2. Windows 95 的產品序號可以用 TRegistry 到 Registry Database 中找出來;

// 取得用戶名稱
function GetUserName: AnsiString;
var
lpName: PAnsiChar;
lpUserName: PAnsiChar;
lpnLength: DWord;
begin
Result := '';
lpnLength := 0;
WNetGetUser(nil, nil, lpnLength); // 取得字串長度
if lpnLength > 0 then
begin
GetMem(lpUserName, lpnLength);
if WNetGetUser(lpName, lpUserName, lpnLength) = NO_ERROR then
Result := lpUserName;
FreeMem(lpUserName, lpnLength);
end;
end; { GetUserName }

// 取得 Windows 產品序號
function GetWindowsProductID: string;
var
reg: TRegistry;
begin
Result := '';
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MacHINE;
OpenKey('Software\Microsoft\Windows\CurrentVersion', False);
Result := ReadString('ProductID');
end;
reg.Free;
end;

6.關閉外部應用程序

如何在 Delphi 應用程序中, 去關閉外部已開啟的應用程序?
下面給出一段在 Delphi 中關閉“計算器”程序為例:

var
HWndCalculator : HWnd;
begin
// find the exist calculator window
HWndCalculator := Winprocs.FindWindow(nil, '計算器'); // close the exist Calculator
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);
end;

7.查閱可視窗口標題

下面只是舉出
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved