bluewind
等級對我不重要

離線
文章: 38
 Windows2003 P41。6G ADSL 1M/512 Office2003
|
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;
原作者:不詳 來 源:不詳
|