常用函数

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;

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

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值