熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi編程技巧集錦

2022-06-13   來源: Delphi編程 
[DELPHI]網絡鄰居復制文件

uses shellapi;
copyfile(pchar(newfiletxt)pchar(//computername/direction/targertxt)false);

[DELPHI]產生鼠標拖動效果

通過MouseMove事件DragOver事件EndDrag事件實現例如在PANEL上的LABEL
var xpanelypanelxlabelylabel:integer;
PANEL的MouseMove事件xpanel:=x;ypanel:=y;
PANEL的DragOver事件xpanel:=x;ypanel:=y;
LABEL的MouseMove事件xlabel:=x;ylabel:=y;
LABEL的EndDrag事件labelleft:=xpanelxlabel;labeltop:=ypanelylabel;

[DELPHI]取得WINDOWS目錄

uses shellapi;
var windir:array[] of char;
getwindowsdirectory(windirsizeof(windir));

或者從注冊表中讀取位置

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion
SystemRoot鍵取得如C:\WINDOWS

[DELPHI]在FORM或其他容器上畫線

var xy:array [] of integer;
canvaspencolor:=clred;
canvaspenstyle:=psDash;
formcanvasmoveto(trunc(x[i])trunc(y[i]));
formcanvaslineto(trunc(x[j])trunc(y[j]));

[DELPHI]字符串列表使用

var tips:tstringlist;
tips:=tstringlistcreate;
tipsloadfromfile(filenametxt);
edittext:=tips[];
tipsadd(last line addition string);
tipsinsert(insert string at NO line);
tipssavetofile(newfiletxt);
tipsfree;

[DELPHI]簡單的剪貼板操作

richeditselectall;
richeditcopytoclipboard;
richeditcuttoclipboard;
editpastefromclipboard;

[DELPHI]關於文件目錄操作

Chdir(c:\abcdir);轉到目錄
Mkdir(dirname);建立目錄
Rmdir(dirname);刪除目錄
GetCurrentDir;//取當前目錄名\
Getdir(s);//取工作目錄名s:=c:\abcdir;
Deletfile(abctxt);//刪除文件
Renamefile(oldtxtnewtxt);//文件更名
ExtractFilename(filelistboxfilename);//取文件名
ExtractFileExt(filelistboxfilename);//取文件後綴

[DELPHI]處理文件屬性

attr:=filegetattr(filelistboxfilename);
if (attr and faReadonly)=faReadonly then //只讀
if (attr and faSysfile)=faSysfile then //系統
if (attr and faArchive)=faArchive then //存檔
if (attr and faHidden)=faHidden then //隱藏

[DELPHI]執行程序外文件

WINEXEC//調用可執行文件
winexec(commandcom /c copy ** c:\SW_Normal);
winexec(start abctxt);
ShellExecute或ShellExecuteEx//啟動文件關聯程序
function executefile(const filenameparamsdefaultDir:string;showCmd:integer):THandle;
ExecuteFile(C:\abc\atxtxabcc:\abc\);
ExecuteFile(http://tingwebyeahnet);
ExecuteFile(mailto:tingweb@wxnet);

[DELPHI]取得系統運行的進程名

var hCurrentWindow:HWnd;szText:array[] of char;
begin
hCurrentWindow:=Getwindow(handleGW_HWndFrist);
while hCurrentWindow <> do
begin
if Getwindowtext(hcurrnetwindow@sztext)> then listboxitemsadd(strpas(@sztext));
hCurrentWindow:=Getwindow(hCurrentwindowGW_HWndNext);
end;
end;

[DELPHI]關於匯編的嵌入

Asm End;
可以任意修改EAXECXEDX不能修改ESIEDIESPEBPEBX

[DELPHI]關於類型轉換函數

FloatToStr//浮點轉字符串
FloatToStrF//帶格式的浮點轉字符串
IntToHex//整數轉進制
TimeToStr
DateToStr
DateTimeToStr
FmtStr//按指定格式輸出字符串
FormatDateTime(YYYYMMDDhhmmssDATE);

[DELPHI]字符串的過程和函數

Insert(objtargetpos);
//字符串target插入在pos的位置如插入結果大於target最大長度多出字符將被截掉如Pos在以外會產生運行錯例如st:=Brian則Insert(OKst)會使st變為BrOKian

Delete(stposNum);
//從st串中的pos(整型)位置開始刪去個數為Num(整型)個字符的子字串例如st:=Brian則Delete(st)將變為Brn

Str(valuest);
//將數值value(整型或實型)轉換成字符串放在st中例如a=E則str(a:st)將使st的值為
Val(stvarcode);//把字符串表達式st轉換為對應整型或實型數值存放在var中St必須是一個表示數值的字符串並符合數值常數的規則在轉換過程中如果沒有檢測出錯誤變量code置為否則置為第一個出錯字符的位置例如st:=Ex是一個實型變量則val(stxcode)將使X值為code值為

Copy(stposnum);
//返回st串中一個位置pos(整型)處開始的含有num(整型)個字符的子串如果pos大於st字符串的長度那就會返回一個空串如果pos在以外會引起運行錯誤例如st:=Brian則Copy(st)返回ri

Concat(ststst……stn);//
把所有自變量表示出的字符串按所給出的順序連接起來並返回連接後的值如果結果的長度將產生運行錯誤例如st:=Brianst:= st:=Wilfred則Concat(ststst)返回Brian Wilfred

Length(st);
//返回字符串表達式st的長度例如st:=Brian則Length(st)返回值為

Pos(objtarget);
//返回字符串obj在目標字符串target的第一次出現的位置如果target沒有匹配的串Pos函數的返回值為例如target:=Brian Wilfred則Pos(Wiltarget)的返回值是Pos(hurbettarget)的返回值是

[DELPHI]關於處理注冊表

uses Registry;
var reg:Tregistry;
reg:=Tregistrycreate;
regrootkey:=HKey_Current_User;
regopenkey(Control Panel\Desktopfalse);
regWriteString(Title Wallpaper);
regwriteString(Wallpaperfilelistboxfilename);
regclosereg;
regfree;

[DELPHI]關於鍵盤常量名

VK_BACK/VK_TAB/VK_RETURN/VK_SHIFT/VK_CONTROL/VK_MENU/VK_PAUSE/VK_ESCAPE
/VK_SPACE/VK_LEFT/VK_RIGHT/VK_UP/VK_DOWN
FF$()$B()
AZ$()$A()
$()$()
◇[DELPHI]初步判斷程序母語
DELPHI軟件的DOS提示This Program Must Be Run Under Win
VC++軟件的DOS提示This Program Cannot Be Run In DOS Mode

[DELPHI]操作Cookie

responsecookies(name)domain:=http://wwwnetcom;
with responsecookiesadd do
begin
name:=username;
value:=username;
end

[DELPHI]增加到文檔菜單連接

uses shellapishlOBJ;
shAddToRecentDocs(shArd_pathpchar(filepath));//增加連接
shAddToRecentDocs(shArd_pathnil);//清空

[雜類]備份智能ABC輸入法詞庫

windows\system\userrem
windows\system\tmmrrem

[DELPHI]判斷鼠標按鍵

if GetAsyncKeyState(VK_LButton)<> then //左鍵
if GetAsyncKeyState(VK_MButton)<> then //中鍵
if GetAsyncKeyState(VK_RButton)<> then //右鍵

[DELPHI]設置窗體的最大顯示

onFormCreate事件
selfwidth:=screenwidth;
selfheight:=screenheight;

[DELPHI]按鍵接受消息

OnCreate事件中處理ApplicationOnMessage:=MyOnMessage;
procedure TFormMyOnMessage(var MSG:TMSG;var Handle:Boolean);
begin
if msgmessage= then //ANY鍵
if msgmessage= then //F
if msgmessage= then //F
end;

[雜類]隱藏共享文件夾

共享效果可訪問但不可見(在資源管理網絡鄰居中)
取共享名為direction$
訪問//computer/dirction/

[Java Script]Java Script網頁常用效果

網頁秒定時關閉
<script language=java script><!
settimeout(windowclose();)
></script>
關閉窗口
<a href=/ onclick=javascript:windowclose();return false;>關閉
定時轉URL
<meta httpequiv=refresh content=;url=http://wwwnetcom>
設為首頁
<a onclick=thisstylebehavior=url(#default#homepage);thissethomepage(http://netcom);href=#>設為首頁
收藏本站
<a href=javascript:windowexternaladdfavorite(http://netcom[未名碼頭])>收藏本站
加入頻道
<a href=javascript:windowexternaladdchannel(http://netcom)>加入頻道

[DELPHI]文本編輯相關

checkboxchecked:=not checkboxchecked;
if checkboxchecked then richeditfontstyle:=richeditfontstyle+[fsBold] else richeditfontstyle:=richeditfontstyle[fsBold]//粗體
if checkboxchecked then richeditfontstyle:=richeditfontstyle+[fsItalic] else richeditfontstyle:=richeditfontstyle[fsItalic]//斜體
if checkboxchecked then richeditfontstyle:=richeditfontstyle+[fsUnderline] else richeditfontstyle:=richeditfontstyle[fsUnderline]//下劃線
memoalignment:=taLeftJustify;//居左
memoalignment:=taRightJustify;//居右
memoalignment:=taCenter;//居中

[DELPHI]隨機產生文本色

randomize;//隨機種子
memofontcolor:=rgb(random()random()random());

[DELPHI]DELPHI UPDATE升級補丁序列號


Xfx

[DELPHI]文件名的非法字符過濾

for i:= to length(s) do
if s[i] in [\/:*?<>|] then

[DELPHI]轉換函數的定義及說明

datetimetofiledate (datetime:Tdatetime):longint;
將Tdatetime格式的日期時間值轉換成DOS格式的日期時間值

datetimetostr (datetime:Tdatetime):string;
將Tdatatime格式變量轉換成字符串如果datetime參數不包含日期值返回字符串日期顯示成為//如果datetime參數中沒有時間值返回字符串中的時間部分顯示成為 AM

datetimetostring (var result string; const format:string; datetime:Tdatetime);
根據給定的格式字符串轉換時間和日期值result為結果字符串format為轉換格式字符串datetime為日期時間值

datetostr (date:Tdatetime)
使用shortdateformat全局變量定義的格式字符串將date參數轉換成對應的字符串

floattodecimal (var result:Tfloatrec;value: extended;precisiondecimals: integer);
將浮點數轉換成十進制表示

floattostr (value:extended):string
將浮點數value轉換成字符串格式該轉換使用普通數字格式轉換的有效位數為

floattotext (buffer:pchar;value:extended; format:Tfloatformat;precision digits:integer):integer;
用給定的格式精度和小數將浮點值value轉換成十進制表示形式轉換結果存放於buffer參數中函數返回值為存儲到buffer中的字符位數buffer是非結果的字符串緩沖區

floattotextfmt (buffer:pchar;value:extended; format:pchar):integer
用給定的格式將浮點值value轉換成十進制表示形式轉換結果存放於buffer參數中函數返回值為存儲到buffer中的字符位數

inttohex (value:longint;digits:integer): string;
將給定的數值value轉換成十六進制的字符串參數digits給出轉換結果字符串包含的數字位數

inttostr (value:longint):string
將整數轉換成十進制形式字符串

strtodate (const S:string):Tdatetime
將字符串轉換成日期值S必須包含一個合法的格式日期的字符串

strtodatetime (const S:string):Tdatetime
將字符串S轉換成日期時間格式S必須具有MM/DD/YY HHMMSS[AM|PM]格式其中日期和時間分隔符與系統時期時間常量設置相關如果沒有指定AM或PM信息表示使用小時制

strtofloat (const S:string):extended;
將給定的字符串轉換成浮點數字符串具有如下格式
[+|]nnn…[]nnn…[<+|><E|e><+|>nnnn]

strtoint (const S:string):longint
將數字字符串轉換成整數字符串可以是十進制或十六進制格式如果字符串不是一個合法的數字字符串系統發生ECONVERTERROR異常

strtointdef (const S:string;default: longint):longint;
將字符串S轉換成數字如果不能將S轉換成數字strtointdef函數返回參數default的值

strtotime (const S:string):Tdatetime
將字符串S轉換成TDATETIME值S具有HHMMSS[AM|PM]格式實際的格式與系統的時間相關的全局變量有關

timetostr (time:Tdatetime):string;
將參數TIME轉換成字符串轉換結果字符串的格式與系統的時間相關常量的設置有關

[DELPHI]程序不出現在ALT+CTRL+DEL

在implementation後添加聲明:
function RegisterServiceProcess(dwProcessID dwType: Integer): Integer; stdcall; external KERNELDLL;
RegisterServiceProcess(GetCurrentProcessID );//隱藏
RegisterServiceProcess(GetCurrentProcessID );//顯示
用ALT+DEL+CTRL看不見

[DELPHI]程序不出現在任務欄

uses windows
var
ExtendedStyle : Integer;
begin
ApplicationInitialize;


From:http://tw.wingwit.com/Article/program/Delphi/201311/8512.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.