20
2018
08

Close、Halt、terminate、ExitProcess的区别

Close:

1.只关闭本窗体

2.当Close是一个主窗体时,程序会退出。

3.Close会发生FormClose事件,FormCloseQuery事件

4.主窗体close以后程序就Application.Terminate了

5.子窗体close以后。没释放,还可以Show出来。

6.也是说主窗口的Close方法其实也是调用Application的Terminate来终止程序的。


Halt:

13
2016
12

Delphi7中使用AssignFile时遇到长文件名报错的BUG

Delphi7中使用AssignFile时遇到长文件名报错的BUG:

procedure TForm1.btn1Click(Sender: TObject);
var
  file1: file;
  filename: string;
  Buf: array[1..5] of Char;
  i: Integer;
begin
  edt1.Text := '';
  filename := 'D:\一二三四五六七八九十1\一二三四五六七八九十2\一二三四五六七八九十3\一二三四五六七八九十4\一二三四五六七八九十5\'
    + '一二三四五六七八九十6\一二三四五六七八九十7\一二三四五六七八九十8\一二三四五六七八九十9\一二三四五六七八九十0\'
    + '一二三四五六七八九十1\一二三四五六七八九十2\一二三四五六七八九十3\一二三四五六七八九十4\一二三四五六七八九十5\'
    + '一二三四五六七八九十6\一二三四五六七八九十7\一二三四五六七八九十8\一二三四五六七八九十9\一二三四五六七八九十0\'
    + '123456789012.txt';
  //ShowMessage(IntToStr(Length(filename)));//459
  filename := ExtractShortPathName(filename);
  //ShowMessage(IntToStr(Length(filename)));//195
  AssignFile(file1, filename);
  FileMode := 0;
  Reset(file1, 1);
  BlockRead(file1, Buf, SizeOf(Buf), i);
  CloseFile(file1);
  edt1.Text := Buf;
end;

将长文件名转为短文件名后,再AssignFile就可以了:

17
2015
09

delphi控件安装与删除

附带通用控件安装方法:

----------

基本安装

1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install;

2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可;

3、对于带*.bpl文件的控件包,Install Packages-->Add-->bpl文件名即可;

07
2015
08

Delphi7 TStringList的DelimitedText和SplitColumns的BUG问题

Delphi7中分割字符串,一般使用TStringList的Delimiter方法,如下:

var  
   sl: TStringList;  
   str: string;  
   i: Integer;  
begin  
   str := 'aa,b b,cc,dd';  
   sl := TStringList.Create;  
   sl.Delimiter := ',';  
   sl.DelimitedText := str;  
   for i := 0 to sl.Count - 1 do  
      ShowMessage(sl[i]);  
   FreeAndNil(sl);  
end;

但是运行的结果确是不对的(空格也被当成了分隔符):

10
2015
07

获取Windows版本信息

10
2015
07

GetSystemMetrics

 函数原型:int GetSystemMetrics(   int nIndex   // system metric or configuration setting );  函数返回与系统有关的信息      

08
2015
01

Delphi7 property Showing: Boolean read FShowing

 property Showing: Boolean read FShowing;

While the Visible property can be read or changed, Showing is a read-only property.

23
2014
12

delphi中Tstringlist分割字符串的用法?

TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。

  常规的用法大家都知道,现在来讨论它的一些高级的用法。
  
1、CommaText
  
2、Delimiter &DelimitedText
  
3、Names &Values &ValueFromIndex
  先看第一个:CommaText。怎么用呢?

23
2014
12

Delphi-ASCII码对照表



ASCII码对照表
BinDecHex缩写/字符解释
0000 0000000NUL(null) 空字符 
0000 0001101SOH(start of handing) 标题开始 
0000 0010202STX(start of text) 正文开始 
0000 0011303ETX(end of text) 正文结束 
0000 0100404EOT(end of transmission) 传输结束 
0000 0101505ENQ(enquiry) 请求 
0000 0110606ACK(acknowledge) 收到通知 
0000 0111707BEL(bell) 响铃 
0000 1000808BS(backspace) 退格 
0000 1001909HT(horizontal tab) 水平制表符 
0000 1010100ALF(NL line feed, new line) 换行键 
0000 1011110BVT(vertical tab) 垂直制表符 
0000 1100120CFF(NP form feed, new page) 换页键 
0000 1101130DCR(carriage return) 回车键 
0000 1110140ESO(shift out) 不用切换 
0000 1111150FSI(shift in) 启用切换 
0001 00001610DLE(data link escape) 数据链路转义 
0001 00011711DC1(device control 1) 设备控制1 
0001 00101812DC2(device control 2) 设备控制2 
0001 00111913DC3(device control 3) 设备控制3 
0001 01002014DC4(device control 4) 设备控制4 
0001 01012115NAK(negative acknowledge) 拒绝接收 
0001 01102216SYN(synchronous idle) 同步空闲 
0001 01112317ETB(end of trans. block) 传输块结束 
0001 10002418CAN(cancel) 取消 
0001 10012519EM(end of medium) 介质中断 
0001 1010261ASUB(substitute) 替补 
0001 1011271BESC(escape) 溢出 
0001 1100281CFS(file separator) 文件分割符 
0001 1101291DGS(group separator) 分组符 
0001 1110301ERS(record separator) 记录分离符 
0001 1111311FUS(unit separator) 单元分隔符 
0010 00003220空格 
0010 00013321! 
0010 00103422 
0010 00113523 
0010 01003624 
0010 01013725 
0010 01103826& 
0010 01113927 
0010 10004028 
0010 10014129 
0010 1010422A 
0010 1011432B 
0010 1100442C 
0010 1101452D 
0010 1110462E 
0010 1111472F 
0011 00004830 
0011 00014931 
0011 00105032 
0011 00115133 
0011 01005234 
0011 01015335 
0011 01105436 
0011 01115537 
0011 10005638 
0011 10015739 
0011 1010583A 
0011 1011593B 
0011 1100603C< 
0011 1101613D 
0011 1110623E 
0011 1111633F 
0100 00006440 
0100 00016541 
0100 00106642 
0100 00116743 
0100 01006844 
0100 01016945 
0100 01107046 
0100 01117147 
0100 10007248 
0100 10017349 
0100 1010744A 
0100 1011754B 
0100 1100764C 
0100 1101774D 
0100 1110784E 
0100 1111794F 
0101 00008050 
0101 00018151 
0101 00108252 
0101 00118353 
0101 01008454 
0101 01018555 
0101 01108656 
0101 01118757 
0101 10008858 
0101 10018959 
0101 1010905A 
0101 1011915B 
0101 1100925C 
0101 1101935D 
0101 1110945E 
0101 1111955F 
0110 00009660 
0110 00019761 
0110 00109862 
0110 00119963 
0110 010010064 
0110 010110165 
0110 011010266 
0110 011110367 
0110 100010468 
0110 100110569 
0110 10101066A 
0110 10111076B 
0110 11001086C 
0110 11011096D 
0110 11101106E 
0110 11111116F 
0111 000011270 
0111 000111371 
0111 001011472 
0111 001111573 
0111 010011674 
0111 010111775 
0111 011011876 
0111 011111977 
0111 100012078 
0111 100112179 
0111 10101227A 
0111 10111237B 
0111 11001247C 
0111 11011257D 
0111 11101267E 
0111 11111277FDEL(delete) 删除


23
2014
12

Delphi Form的释放和隐藏:free,hide,close

 form.Free   -   释放Form占用的所有资源。Free后,Form指针不能再使用,除非对Form重新赋值。