常用函数

来源:互联网 发布:高考失利了怎么办知乎 编辑:程序博客网 时间:2024/04/29 11:18

DateDiff("y",timefield,'2002-11-28')>0       在年的区分度上比较时间大小

==============================================================================

 listview中的checkbox中的 钩选:
 var  
  first,secord:tlistitem;  
  begin  
  first:=listview1.GetNextItem(listview1.TopItem,sdall,[isSelected]);//取得第一个select  
  secord:=listview1.GetNextItem(first,sdall,[isSelected]);//取得第二个select  
  end;

==============================================================================

Locate的用法:  
  locate   ('field1;field2;field3',vararrayof([value1,value2,value3]),[locaseinsensitive])  
   
  举个例子:  
  Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver','P','831-431-1000']),[loPartialKey]);  
'Company;Contact;Phone'分别是你要查找的三个字段,(['Sight Diver','P','831-431-1000']分别是要查找字段所对应的值

================================================================================

在Delphi中如何调用外部的EXE文件
首先在单元文件的Uses语句中添加WinProcs,然后在需要调用外部EXE文件的地方添加代码:

begin  
WinExec(......);   
end;
 
uinExec为API函数,其语法为:UINT WinExec(LPCSTR lpCmdLine, UINT uCmdShow );

==================================================================================

 在delphi中"队"如何操作?"
var
MyQueue:TQueue; //声明队变量
ARecord:^MyName; //一个指针
i:integer;
ss:String;
{初始化部分}
MyQueue:=TQueue.Create();
{Push部分}
for i=0 to 10 do
begin
New(ARecord);//给指针空间
ARecord^.filename:=IntToStr(i);
MyQueue.Push(ARecord);//进队
end;
{Pop部分}

for :=0 to (MyQueue.Count-1) do
begin
ARecord:=MyQueue.Pop;//出队
ss:=ARecord^.filename;
Dispose(ARecord); //清空指针
end;

{释放队的资源}
MyQueue.Free;

=================================================================================

用Synchronize() 来同步多线程时
被同步的procedure 将占用主线程的时间片来执行
也就是说这个procedure只会在主线程中执行 以确保安全!!!
想想。。。这样缺点也不少,但有时(一般是有操作VCL组件时)我们不得不这么做
Synchronize()是同步線程﹐為了避免同線程同步執行同一個控件發生異常的方法﹐
比如:如果同一線程同時label1.caption:=';那你可以用Synchronize()來處理它
Synchronize(label1.caption:=')

=================================================================================

一般来说,客户端主动断开,服务器是可以触发Ondisconnect事件的。这时你可以在次事件里,用
aThread.terminate; aThread := nil;释放。如果大量客户端连接服务器,你最好使用ThreadMgr控
件配合,并且,在服务器端对每个客户端做链路计时,让客户端定时发送空包,表示链路畅通。
aThread.Connection.CheckForGracefulDisconnect(True);
 except
    //客户端非法断开触发的异常处理
 end;
   或者   
 try
   aThread.Connection.CheckForDisconnect(True);
 except
   //如果客户端已经断开,则触发异常处理
   aThread.terminate;
   athread := nil;
 end;

=================================================================================

 

 

 

原创粉丝点击