1. 产生随机密码(应该比较有用)
function CreatePass:String;
const
MAX_LEN=10;
var
i: integer;
s: string;
begin
Randomize;
s:='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+'abcdefghijklmnopqrstuvwxyz'+ '0123456789';
Result := '';
for i := 0 to MAX_LEN-1 do
begin
Result := Result + s[Random(Length(s)-1)+1];
end;
end;
2. 十进制数字转换成罗马数字
function DecToRoman(iDecimal: longint): string;
const
aRomans: array[1..13] of string = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC',
'C', 'CD', 'D', 'CM', 'M');
aArabics: array[1..13] of integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400,
500, 900, 1000);
var
i: integer;
begin
result := '';
for i := 13 downto 1 do
while (iDecimal >= aArabics[i]) do
begin
iDecimal := iDecimal - aArabics[i];
result := result + aRomans[i];
end;
end;
PRocedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(DecToRoman(5));
end;
3. 格式化整数显示
使用FormatFloat函数可以解决你很多问题。例如把1200000格式化为1,200,000输出
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:string;
begin
i := 1200000;
s := FormatFloat('#,0', i);
showmessage(s);
end;
4. 判断串口是否收到了数据可以使用ClearCommError函数,TcomStat结构体中cbInQue,cbOutQue可以帮助实现判断。
5. RGB颜色转换为TColor类
function RGBToColor(R,G,B:Byte): TColor;
begin
Result:=B Shl 16 Or
G Shl 8 Or
R;
end;
6. 把TColor转换为RGB值
procedure TForm1.Button1Click(Sender: TObject);
var
Color: TColor;
R, G, B: Integer;
begin
Color := clBlack;
R := Color and $FF;
G := (Color and $FF00) shr 8;
B := (Color and $FF0000) shr 16;
showmessage(inttostr(R));
showmessage(inttostr(G));
showmessage(inttostr(B));
end;
7. 浏览计算机对话框
uses ShlObj;
function BrowseForComputer(const winhandle : THANDLE; const title : string) : string;
var
BrowseInfo: TBrowseInfo;
IDRoot: PItemIDList;
Path: array[0..MAX_PATH] of Char;
begin
SHGetSpecialFolderLocation(winHandle, CSIDL_NETWORK, IDRoot);
ZeroMemory(@BrowseInfo, SizeOf(TBrowseInfo));
ZeroMemory(@path, MAX_PATH);
BrowseInfo.hwndOwner := winhandle;
BrowseInfo.pidlRoot := IDRoot;
BrowseInfo.lpszTitle := PChar(title);
BrowseInfo.pszDisplayName := @path;
BrowseInfo.ulFlags:=BIF_BROWSEFORCOMPUTER;
SHBrowseForFolder(BrowseInfo);
end;