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;
=================================================================================