昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-05-17, 11:36:21
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: 為增進論壇品質,全面更新硬體設備,經費有限,請各位踴躍贊助論壇!!


+  麻辣家族討論區
|-+  程式設計
| |-+  Delphi
| | |-+  [轉貼] delphi中的幾個技巧
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: [轉貼] delphi中的幾個技巧  (閱讀 1314 次)
bluewind
等級對我不重要
*
離線 離線

文章: 38


作業系統 Windows2003
CPU P41。6G
網路連線 ADSL 1M/512
OFFICE版本 Office2003

[轉貼] delphi中的幾個技巧
« 於: 2005-12-29, 14:44:25 »

delphi中的幾個技巧

1、判斷一個字串是否包含於另外一個字串的方法
例如:if pos('ab','abcd')<>0 then
messagedlg('ab是包含於abcd',mtConfirmation,[mbYes, mbNo],0);
pos(obj,target) 在target字串中找出第一個出現obj的第一個字元位置,如果找不到,返回0.

2、如何使視窗全屏,類似遊戲一樣,而不是視窗的最大化!
(1) BorderStyle 為 bsNone
(2) Windowstate 為 wsMaximized
(3) 退出時可加一個按鈕之類的,寫上 close 即可退出。

3、數位格式化輸出
format('%8.2f',[123.456]),返回字串' 123.46'。

4、播放一個wav檔
use mmsystem;
SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC);

5、InputBox,InputQuery和ShowMessage函數的威力
uses dialogs;
var s,s1:string;
b:boolean;
begin
s:=trim(Inputbox('NewPassword','Password','masterkey'));
b:=s<>''
s1:=s;
if b then b:=InputQuery('Confirm Password','Password',s1);
if not b or (s1<>s) then ShowMessage('Password Failed');
end;

6、幾個有關子目錄的操作的過程
MkDir(str); ChDir(str); GetDir(DriveID,str); SetCurrentDir(str);
IOResult --上面幾個程序呼叫成功即返回0值

7、將一個可視控制項變成圖形類型
例如將一個帶背景的LABEL變成一個TIMAGE圖片類型,可以這樣做:
image1.width:=label1.width;
image1.height:=label1.height;
label1.perform(WM_PAINT,image1.Canvas.Handle,0);

8、如何得到字元的ASCII值
得到字元的ASCII值,可以用如下語句:
var: a:integer;
string1:string;
begin
string1:='ABC'
a:=byte(string[1]); {此時就得到'A'的ASCII值}
end;

9、動態更新DBGrid的顏色
例如,如果一個城市的人口大於200萬,我們就讓它顯示為藍色。使用的控制項事件為DBGrid.OnDrawColumeCell:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect:TRect;DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Table1.FieldByName('Population').AsInteger > 20000000 then
DBGrid1.Canvas.Font.Color := clBlue;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

10、獲得命令行參數
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;


原作者:不詳
來 源:不詳
已記錄

國農鮮乳抬來拜
如履薄冰,小心發言!
如果我不在電腦前,電腦一定在重開機!
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
跳到: