- 、判斷一個字串是否包含於另外一個字串的方法
例如:if pos('ab','abcd')<>0 then
messagedlg('ab是包含于abcd',mtConfirmation,[mbYes, mbNo],0);
pos(obj,target) 在target字串中找出第一個出現obj的第一個字串位置,如果找不到,返回0 - 如何使窗口全屏,類似游戲一樣,而不是視窗的最大化!
(1) BorderStyle 为 bsNone
(2) Windowstate 为 wsMaximized
(3) 離開時可加一個按鈕,寫上 close 即可退出。 - 數字格式化
format('%8.2f',[123.456]) ==> ' 123.46'。 - 播放wav
use mmsystem;
SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC); - 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; - 將一個可视控件变成图形类型
例如将一个带背景的LABEL变成一个TIMAGE图片类型,可以这样做:
image1.width:=label1.width;
image1.height:=label1.height;
label1.perform(WM_PAINT,image1.Canvas.Handle,0); - 如何得到字的ASCII值
var: a:integer;
string1:string;
begin
string1:='ABC';
a:=byte(string[1]); {此时就得到'A'的ASCII值}
end; - 動態更新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; - 取得路徑中的文件名:
ExtractFileName(Address.Text); - 複制文件:
CopyFile(pchar(strSourcePath),pchar(strSavePath),false);
false表示如存在同名文件是否覆蓋。 - 复制文件夹:
//1.1拷貝目錄:DoCopyDir
function DoCopyDir(sDirName:String;sToDirName:String):Boolean;
var
F: TSearchRec;
//hFindFile:Cardinal;
t,tfile:String;
sCurDir:String[255];
FindFileData:WIN32_FIND_DATA;
begin
//先保存目前目錄
sCurDir:=GetCurrentDir;
ChDir(sDirName);
F.FindHandle:=FindFirstFile('*.*',FindFileData);
if F.FindHandle<>INVALID_HANDLE_VALUE then
begin
if not DirectoryExists(sToDirName) then //如果目錄不存在
ForceDirectories(sToDirName); //強迫建立目錄
repeat
tfile:=FindFileData.cFileName;
if (tfile='.') or (tfile='..') then
Continue; //跳過兩個目錄
if FindFileData.dwFileAttributes=FILE_ATTRIBUTE_DIRECTORY then
begin
t:=sToDirName+'\'+tfile;
if not DirectoryExists(t) then
ForceDirectories(t);
if sDirName[Length(sDirName)]<>'\' then
DoCopyDir(sDirName+'\'+tfile,t)
else
DoCopyDir(sDirName+tfile,sToDirName+tfile);
end
else
begin
t:=sToDirName+'\'+tFile;
CopyFile(PChar(tfile),PChar(t),false);
end;
until FindNextFile(F.FindHandle,FindFileData)=false;
FindClose(F);
end
else
begin
ChDir(sCurDir);
result:=false;
exit;
end;
//回到原來的目錄下
ChDir(sCurDir);
result:=true;
end;
//---- 1.2拷貝目鍵的函數:CopyDir
function CopyDir(sDirName:String;sToDirName:string):Boolean;
begin
if Length(sDirName)<=0 then exit; //拷貝 Result:=DoCopyDir(sDirName,sToDirName); end;
2007年4月13日 星期五
delphi的幾個技巧
內容來源: http://qiang82.cnblogs.com/
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言