Delphi ListView快速操作通用實現


眾所周知,Delphi ListView類直接進行Add、Update、Delete操作的速度是比較慢的,尤其是當數據量較大時,比如數據量達到5000、10000、50000時,速度真是可以說是“慢得驚人”。其實快速操作的方法非常簡單,就當大家都知道了。在本人的工作中,很多項目都用到ListView,並且對速度的響應要求比較高,於是發生了快速操作ListView的代碼散布於多個項目大量模塊中的問題,並且,當界面層數據顯示要求發生改變時,自然發生“重復性代碼的通用問題”。考慮到對以前版本的兼容性問題,也一直沒有引用第三方的成熟組件。鑒於:“程序中的重復代碼最易引發問題,必須消除”的實踐經驗,自己設計了一個比較通用的解決此類問題的類結構。當然,遠不是什么“通用框架”了(眼下市面上很多人喜歡把自己做的無論什么東西通稱為框架)。在采用此結構的項目中,很容易實現MVC模式,達到業務邏輯與界面顯示分離的低級的、基礎的要求。

Delphi ListView快速操作通用實現

作者:成曉旭

眾所周知,Delphi ListView類直接進行Add、Update、Delete操作的速度是比較慢的,尤其是當數據量較大時,比如數據量達到5000、10000、50000時,速度真是可以說是“慢得驚人”。其實快速操作的方法非常簡單,就當大家都知道了。在本人的工作中,很多項目都用到ListView,並且對速度的響應要求比較高,於是發生了快速操作ListView的代碼散布於多個項目大量模塊中的問題,並且,當界面層數據顯示要求發生改變時,自然發生“重復性代碼的通用問題”。考慮到對以前版本的兼容性問題,也一直沒有引用第三方的成熟組件。鑒於:“程序中的重復代碼最易引發問題,必須消除”的實踐經驗,自己設計了一個比較通用的解決此類問題的類結構。當然,遠不是什么“通用框架”了(眼下市面上很多人喜歡把自己做的無論什么東西通稱為框架)。在采用此結構的項目中,很容易實現MVC模式,達到業務邏輯與界面顯示分離的低級的、基礎的要求。

(因為,目前CSDN的軟件上傳功能不可用,我只有將部分代碼片斷放在文檔中,有需要完整源碼者,請留言)

類層次結構:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

ListView基礎操作封裝在LVControler包中,核心的類是TCXXLVControler:

 (說明:LVControler類是被封裝通用類結構內,外部用戶是不需要了解和訪問的,所以不作介紹。)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

傳統的ListView操作基類是TLVCommonClass,如果想用傳統的方法增、刪、改ListView中的數據,可以直接從此類繼承。

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

 源碼如下:

 

具體的一個從此類繼承下來的用於Socket界面顯示的TLVSocket的類Overvivw如下:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

源碼如下:

 

快速的ListView操作基類是TLVQuickClass,如果想用快速方法增、刪、改ListView中的數據,可以直接從此類繼承。

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

主要方法:(可以看到,里面沒有真正的Public方法,子類也僅需實現兩個Protected的virtual方法)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

源碼如下:

 

此類中,要求每個具體應用的子類必須實現的方法僅有兩個:CheckFound():根據具體應用檢測的數據是否已經存在;ProcOnDataDetail():客戶端ListView的OnData()事件的數據處理回調方法。下面是幾個具體實現的子類的OverView:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

具體的一個從此類繼承下來的用於Socket界面顯示的TLVQuickSocket的類Overvivw如下:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

         可以看出:子類實現了兩個抽象的虛方法,其它的方法,都是根據業務需要,類用戶自行增加的。

       源碼如下:

      

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品名稱:   成曉旭的個人軟件Delphi源碼庫

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品版本:   CXXSoft delphi code source lib 1.0

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊名稱:   Delphi之ListView顯示控制類---應用層:Soft socket類定義單元

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊描述:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      單元文件:   unLVSoftSocket.pas-->unLVQuickSocket.pas

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發作者:   成曉旭

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      備注:       任何人使用此文件時,請保留此段自述文件,謝謝!

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發時間:   2005-09-26

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-06-16

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   增加通過TList來高速增加、更新、刪除數據

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  先用吧,以后再優化和完善

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-10

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   成功地將ListView的OnData事件的List對象移入此類中

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-11

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   重大重構:將此類分成兩個類:TLVSoftSocket-->TLVSoftSocket和TLVQuickSocket

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  以遵循SRP原則  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風unit unLVQuickSocket;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風interface

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風uses

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  ComCtrls,Classes,SysUtils,Windows,

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  unLVQuickClass,unLVDefine;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風type

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  TLVQuickSocket = class(TLVQuickClass)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  private

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  protected

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function  CheckFound(const pData:Pointer;const aKey:variant):boolean;override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class procedure ProcOnDataDetail(const pData:Pointer;var Item: TListItem);override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  public

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    constructor Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    destructor  Destroy();override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure InitListView(var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //快速方法

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //暫時這樣增加,以后在重構到基類中

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure AddToLVSocketQuick(const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure UpdateLVSocketQuick(const aUniqueID:integer;const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure DeleteLVSocketQuick(const aUniqueID:integer;const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure DeleteAllLVSocket(var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure OnDataEvent(Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  GetDataCount():integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風implementation

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風Delphi ListView快速操作通用實現 - hdw802 - 往事隨風...{ TLVQuickSocket }

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.AddToLVSocketQuick(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  AddItemDataToListView(@aSocketStatus,sizeof(aSocketStatus),lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class function TLVQuickSocket.CheckFound(const pData: Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aKey: variant): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  p:^TSocketStatusInfo;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  p := pData;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := (p.UniqueID = aKey);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風constructor TLVQuickSocket.Create;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.DeleteAllLVSocket(var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  DeleteAllListView(lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.DeleteLVSocketQuick(const aUniqueID:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  DeleteItemDataToListView(aUniqueID,@aSocketStatus,sizeof(aSocketStatus),lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風destructor TLVQuickSocket.Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickSocket.GetDataCount(): integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := Self.GetLVListCount();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.InitListView(var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  InitListViewColumns(SocketStrBuffer,SocketWidthBuffer,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.OnDataEvent(Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Self.OnDataToListView(Item);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class procedure TLVQuickSocket.ProcOnDataDetail(const pData: Pointer;var Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pSocket:^TSocketStatusInfo;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //這兩個有什么不同?

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //CopyMemory(pSocket,pData,sizeof(TSocketStatusInfo));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pSocket := pData;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.Caption := IntToStr(pSocket.GroupID);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(IntToStr(pSocket.UniqueID));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.IPAddress);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.SubItemName);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.LoginTime);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.SendNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.RecNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.Remark);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickSocket.UpdateLVSocketQuick(const aUniqueID:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  UpdateItemDataToListView(aUniqueID,@aSocketStatus,sizeof(aSocketStatus),lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end.

 

 

小結:

應用此類結構實現ListView快速數據操作的優勢:

<!--[if !supportLists]-->1、   <!--[endif]-->可以快速實現MVC模式,達到界面顯示與業務邏輯的分離。在Controllor類中,實例化數據顯示子類,調用相應方法即可實現顯示數據的增、刪、改。

<!--[if !supportLists]-->2、   <!--[endif]-->與原始的快速方法相比,封裝了內存數據List,大大簡化了List對象的操作(尤其是當有很多相同或者類似數據要求在不同Form的ListView中顯示時),並減少了List的創建、數據操作、釋放等操作時發生錯誤的可能性。

<!--[if !supportLists]-->3、   <!--[endif]-->簡化了多個相同、類似數據顯示的控制代碼,針對每個份要顯示的數據及ListView,只需要實例化一個顯示子類,避免了直接應用原始的快速方法時,控制代碼分散在每一個具體Form類中的問題。

<!--[if !supportLists]-->4、   <!--[endif]-->對顯示數據的業務信息份進行了集中,當要求顯示的信息發生變化時,只需在數據顯示子類這一個類中更改即可。

此通用類結構仍有些不足之處,歡迎有興趣的朋友繼續完善:

<!--[if !supportLists]-->1、<!--[endif]-->每個應用層類的外部調用方式非常類似(請參考開發的示例源碼),表明,有些通用的方法沒有進行更好的抽象。

<!--[if !supportLists]-->2、<!--[endif]-->快速訪問基類對其子類的行為抽象不充分,導致子類的應用層調用代碼非常類似。當初這樣設計的目的是想保持類結構有充分的可擴展性。其實完全可以將基類進行改良:將抽象的虛方法更換成接口,這樣,基類實現的更好的封裝,並且更好地滿足了“向穩定的方向依賴”和“針對接口編程”的設計原則。這樣,應用層還是要實例化一個自己業務需要的類來實現此接口。但Delphi的接口用起來不像是真正的接口,通常要從TInterfacedObject等類繼承,大大限制了類結構層次的演化。(因為在不支持多繼承的語言環境中,如果還想增加更高層次的抽象就不那么容易了)。

<!--[if !supportLists]-->3、<!--[endif]-->當前的版本還沒有提供針對某列進行數據排序的功能。

 

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品名稱:   成曉旭的個人軟件Delphi源碼庫

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品版本:   CXXSoft delphi code source lib 1.0

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊名稱:   Delphi之ListView顯示控制類---外部應用層通用類定義單元

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊描述:   ListView快速操作方法類

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      單元文件:   unLVCommonClass.pas--->unLVQuickClass.pas

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發作者:   成曉旭

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      備注:       任何人使用此文件時,請保留此段自述文件,謝謝!

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發時間:   2005-09-26

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-05-31

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   解決GetLVItemOrderByValue()的參數不靈活的問題

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  並解決Method 'Create' hides virtual method of base type 'TComponent'的問題

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-06-16

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   增加通過TList來高速增加、更新、刪除數據

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  先用吧,以后再優化和完善

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-10

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   成功地將ListView的OnData事件的List對象移入此類中,並將其上移到其類

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-11

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   重大重構:將此類分成兩個類:TLVCommonClass-->TLVCommonClass和TLVQuickClass,

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  以遵循SRP原則

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風unit unLVQuickClass;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風interface

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風uses

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  SysUtils,Classes,ComCtrls,Windows,Variants,

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  unLVControler;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風const

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  SpecialItemOrder = -1;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  CSImg_Normal = 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  CSImg_Running = 1;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  GetColumnOrder = 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風type

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  TLVQuickClass = class(TInterfacedObject)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  private

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    cxxLVC:TCXXLVControler;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    lvDataList: TList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //為ListView的Item的Data屬性查詢關鍵數據在TList中的索引號

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function  GetListDataIndexByKey(const listData:TList;const aKey: variant):integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //快速

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure ClearLVDataList();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  protected

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //注意:約定最后一項一定是ImageIndex

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //tmpList:TStringList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  InitListViewColumns(const displayName: array of string;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        const displayWidth: array of integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //子類必須實現

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function  CheckFound(const pData:Pointer;const aKey:variant):boolean;virtual; abstract;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class procedure ProcOnDataDetail(const pData:Pointer;var Item: TListItem);virtual; abstract;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //快速方法

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //[注意:新方法中lvList不要求傳遞參數,保留以兼容舊客戶端版本]

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //將pData數據加入List中,實現向ListView增加數據行

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function AddItemDataToListView(const pData:Pointer;const dataNumber:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        //; var lvList: TList=nil):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //以aKey為關鍵值查找,並用pData數據更新List中滿足條件的內存塊,實現向ListView更新數據行

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function UpdateItemDataToListView(const aKey:variant;const pData:Pointer;const dataNumber:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        //; var lvList: TList=nil):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //以aKey為關鍵值查找,並用pData數據刪除List中滿足條件的內存塊,實現向ListView刪除數據行

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function DeleteItemDataToListView(const aKey:variant;const pData:Pointer;const dataNumber:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        //; var lvList: TList=nil):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //刪除List中所有內存區,實現將ListView清空所有數據行

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure DeleteAllListView(var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //ListVisw的OnData事件處理

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure OnDataToListView(var Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //ListVisw的OnData事件的List Count

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  GetLVListCount():integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  public

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    constructor Create();overload;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    destructor Destroy();override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風implementation

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風Delphi ListView快速操作通用實現 - hdw802 - 往事隨風...{ TLVQuickClass }

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickClass.AddItemDataToListView(const pData: Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const dataNumber: integer; var lvTemp: TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //; var lvList: TList):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pTemp:Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT (Assigned(pData) and Assigned(lvTemp) and Assigned(lvDataList)) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //new(pTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  GetMem(pTemp,dataNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvTemp.OwnerData := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  CopyMemory(pTemp,pData,dataNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvDataList.Add(pTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.Count := lvList.Count;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.EndUpdate();  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickClass.ClearLVDataList();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Loop:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pTemp:Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT (Assigned(lvDataList) and (lvDataList.Count > 0)) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  for Loop := 0 to lvDataList.Count - 1 do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    pTemp := (lvDataList.Items[Loop]);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if Assigned(pTemp) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      FreeMem(pTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風constructor TLVQuickClass.Create;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  cxxLVC := TCXXLVControler.Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //tmpList := TStringList.Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvDataList := TList.Create();  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickClass.DeleteAllListView(var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT (Assigned(lvTemp) and Assigned(lvDataList) and (lvDataList.Count > 0)) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvTemp.OwnerData := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  while (lvDataList.Count > 0) do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Dispose(lvDataList[0]);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    lvDataList.Delete(0);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvTemp.Items.Count := lvDataList.Count;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  lvTemp.Items.EndUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickClass.DeleteItemDataToListView(const aKey: variant;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const pData: Pointer; const dataNumber: integer; var lvTemp: TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //var lvList: TList): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT (Assigned(pData) and Assigned(lvTemp) and Assigned(lvDataList) and (lvDataList.Count > 0)) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex := GetListDataIndexByKey(lvDataList,aKey);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if (colIndex <> SpecialItemOrder) and (colIndex >= 0) and (colIndex <= lvDataList.Count - 1) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Dispose(lvDataList[colIndex]);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    lvDataList.Delete(colIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.Count := lvList.Count;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.EndUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風destructor TLVQuickClass.Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  ClearLVDataList();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(lvDataList) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    FreeAndNil(lvDataList);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(cxxLVC) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    FreeAndNil(cxxLVC);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //if Assigned(tmpList) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //  FreeAndNil(tmpList);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class function TLVQuickClass.GetListDataIndexByKey(const listData: TList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aKey: variant): integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Loop:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := SpecialItemOrder;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT Assigned(listData) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if listData.Count <= 0 then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  for Loop := 0 to listData.Count - 1 do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if CheckFound(listData[Loop],aKey) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      Result := Loop;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      break;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickClass.GetLVListCount(): integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(lvDataList) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := lvDataList.Count;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickClass.InitListViewColumns(const displayName: array of string;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const displayWidth: array of integer; var lvTemp: TListView): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(cxxLVC) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    cxxLVC.InitLVColumns(displayName,displayWidth,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVQuickClass.OnDataToListView(var Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pTemp:Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //以后要移到類中,做成回調

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT Assigned(lvDataList) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if lvDataList.Count <= 0 then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Item.Index > lvDataList.Count then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pTemp := lvDataList[Item.Index];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  ProcOnDataDetail(pTemp,Item);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.ImageIndex := 1;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.Data := pTemp;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVQuickClass.UpdateItemDataToListView(const aKey: variant;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const pData: Pointer; const dataNumber: integer; var lvTemp: TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //var lvList: TList):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if NOT (Assigned(pData) and Assigned(lvTemp) and Assigned(lvDataList) and (lvDataList.Count > 0)) then Exit;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex := GetListDataIndexByKey(lvDataList,aKey);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if (colIndex <> SpecialItemOrder) and (colIndex >= 0) and (colIndex <= lvDataList.Count - 1) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    CopyMemory(lvDataList[colIndex],pData,dataNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //注意:要影響性能  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.Count := lvList.Count;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //lvTemp.Items.EndUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end.

 

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品名稱:   成曉旭的個人軟件Delphi源碼庫

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品版本:   CXXSoft delphi code source lib 1.0

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊名稱:   Delphi之ListView顯示控制類---應用層:Soft socket類定義單元

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊描述:

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      單元文件:   unLVSoftSocket.pas-->unLVSocket.pas

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發作者:   成曉旭

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      備注:       任何人使用此文件時,請保留此段自述文件,謝謝!

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發時間:   2005-09-26

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-06-16

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   增加通過TList來高速增加、更新、刪除數據

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  先用吧,以后再優化和完善

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-10

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   成功地將ListView的OnData事件的List對象移入此類中

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-11

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   重大重構:將此類分成兩個類:TLVSoftSocket-->TLVSocket和TLVQuickClass

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  以遵循SRP原則  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風unit unLVSocket;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風interface

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風uses

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  ComCtrls,Classes,SysUtils,Windows,

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  unLVCommonClass,unLVDefine;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風type

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  TLVSocket = class(TLVCommonClass)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  private

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //注意:此方法與順序嚴重藕合

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  SaveSerialStatusToStringList(const aSocketStatus:TSocketStatusInfo):boolean;    

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  protected

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function  CheckFound(const pData:Pointer;const aKey:variant):boolean;override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class procedure ProcOnDataDetail(const pData:Pointer;var Item: TListItem);override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  public

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    constructor Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    destructor  Destroy();override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure InitListView(var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //傳統方法

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure AddToLVSocket(const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure UpdateLVSocket(const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure DeleteLVSocket(const aSocketStatus:TSocketStatusInfo;var lvTemp:TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風implementation

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風Delphi ListView快速操作通用實現 - hdw802 - 往事隨風...{ TLVSocket }

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVSocket.AddToLVSocket(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo; var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if SaveSerialStatusToStringList(aSocketStatus) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    AddDataToListView(tmpList,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class function TLVSocket.CheckFound(const pData: Pointer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aKey: variant): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  p:^TSocketStatusInfo;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  p := pData;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := (p.UniqueID = aKey);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風constructor TLVSocket.Create;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVSocket.DeleteLVSocket(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo; var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if SaveSerialStatusToStringList(aSocketStatus) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    DeleteDataFromListView(tmpList,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風destructor TLVSocket.Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVSocket.InitListView(var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  InitListViewColumns(SocketStrBuffer,SocketWidthBuffer,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class procedure TLVSocket.ProcOnDataDetail(const pData: Pointer;var Item: TListItem);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pSocket:^TSocketStatusInfo;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //這兩個有什么不同?

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //CopyMemory(pSocket,pData,sizeof(TSocketStatusInfo));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  pSocket := pData;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.Caption := IntToStr(pSocket.GroupID);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(IntToStr(pSocket.UniqueID));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.IPAddress);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //Item.SubItems.Add(IntToStr(pSocket.CommServerPort));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.SubItemName);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.LoginTime);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.SendNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.RecNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Item.SubItems.Add(pSocket.Remark);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //Item.SubItems.Add(pSocket.IPAddress);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  //Item.SubItems.Add(pSocket.IPAddress);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVSocket.SaveSerialStatusToStringList(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(tmpList) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Clear();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(IntToStr(aSocketStatus.GroupID));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(IntToStr(aSocketStatus.UniqueID));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(aSocketStatus.IPAddress);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(aSocketStatus.SubItemName);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(aSocketStatus.LoginTime);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(aSocketStatus.SendNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(aSocketStatus.RecNumber);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList.Add(IntToStr(CSImg_Running));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVSocket.UpdateLVSocket(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aSocketStatus: TSocketStatusInfo; var lvTemp: TListView);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if SaveSerialStatusToStringList(aSocketStatus) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    UpdateDataFromListView(tmpList,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end.

 

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品名稱:   成曉旭的個人軟件Delphi源碼庫

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      產品版本:   CXXSoft delphi code source lib 1.0

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊名稱:   Delphi之ListView顯示控制類---外部應用層通用類定義單元

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      模塊描述:   ListView傳統操作方法類

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      單元文件:   unLVCommonClass.pas

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發作者:   成曉旭

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      備注:       任何人使用此文件時,請保留此段自述文件,謝謝!

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      開發時間:   2005-09-26

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-05-31

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   解決GetLVItemOrderByValue()的參數不靈活的問題

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  並解決Method 'Create' hides virtual method of base type 'TComponent'的問題

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-06-16

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   增加通過TList來高速增加、更新、刪除數據

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  先用吧,以后再優化和完善

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-10

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   成功地將ListView的OnData事件的List對象移入此類中,並將其上移到其類

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改歷史:   2006-07-11

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//      修改描述:   重大重構:將此類分成兩個類:TLVCommonClass-->TLVCommonClass和TLVQuickClass

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//                  以遵循SRP原則 

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//------------------------------------------------------------------------------

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風unit unLVCommonClass;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風interface

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風uses

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  SysUtils,Classes,ComCtrls,Windows,Variants,

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  unLVControler,unLVInterface;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風const

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  SpecialItemOrder = -1;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  CSImg_Normal = 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  CSImg_Running = 1;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  GetColumnOrder = 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風type

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  TLVCommonClass = class(TInterfacedObject,ILVControllor)

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  private

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    cxxLVC:TCXXLVControler;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function StrIsNumber(const str:PChar):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  GetLVItemOrderByValue(const lvTemp:TListView;const aKeyValue:string;const columnOrder:integer=SpecialItemOrder):integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    procedure CommonListItemProcess(const dataList: TStringList;var liTemp:TListItem; const isUpdate: boolean);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  protected

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //注意:約定最后一項一定是ImageIndex

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    tmpList:TStringList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  InitListViewColumns(const displayName: array of string;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        const displayWidth: array of integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  AddDataToListView(const dataList:TStringList;var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  UpdateDataFromListView(const dataList:TStringList;var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //注意:刪除的鍵值默認以SubItem[0]為標准

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    function  DeleteDataFromListView(const dataList:TStringList;var lvTemp:TListView):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //子類必須實現

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class function  CheckFound(const pData:Pointer;const aKey:variant):boolean;virtual; abstract;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    class procedure ProcOnDataDetail(const pData:Pointer;var Item: TListItem);virtual; abstract;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  public

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    constructor Create();overload;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    destructor Destroy();override;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風implementation

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風Delphi ListView快速操作通用實現 - hdw802 - 往事隨風...{ TLVCommonClass }

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVCommonClass.AddDataToListView(const dataList: TStringList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  var lvTemp: TListView): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  liTemp:TListItem;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if dataList.Count > 0 then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    liTemp := lvTemp.Items.Add();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    CommonListItemProcess(dataList,liTemp,false);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //liTemp.Caption := dataList.Strings[dataIndex];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //while (dataIndex < dataList.Count) do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //  liTemp.SubItems.Add(dataList.Strings[dataIndex]);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //  Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    //end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    lvTemp.Items.EndUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風procedure TLVCommonClass.CommonListItemProcess(const dataList: TStringList;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  var liTemp: TListItem; const isUpdate: boolean);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  dataIndex:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  dataIndex := 0;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  liTemp.Caption := dataList.Strings[dataIndex];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  while (dataIndex < dataList.Count) do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if (dataIndex = dataList.Count - 1) and StrIsNumber(PChar(dataList.Strings[dataIndex])) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      liTemp.ImageIndex := StrToInt(dataList.Strings[dataIndex]); 

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    else

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      if isUpdate then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        liTemp.SubItems[dataIndex-1] := dataList.Strings[dataIndex]

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      else

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        liTemp.SubItems.Add(dataList.Strings[dataIndex]);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風constructor TLVCommonClass.Create;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  cxxLVC := TCXXLVControler.Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  tmpList := TStringList.Create();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVCommonClass.DeleteDataFromListView(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const dataList: TStringList; var lvTemp: TListView): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風//  liTemp:TListItem;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if dataList.Count > 0 then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    colIndex := GetLVItemOrderByValue(lvTemp,dataList.Strings[GetColumnOrder+1],GetColumnOrder);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if (colIndex <> SpecialItemOrder)  and Assigned(cxxLVC)then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      cxxLVC.DeleteItemByIndex(lvTemp,colIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風destructor TLVCommonClass.Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(cxxLVC) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    FreeAndNil(cxxLVC);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(tmpList) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    FreeAndNil(tmpList);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  inherited Destroy;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVCommonClass.GetLVItemOrderByValue(const lvTemp: TListView;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const aKeyValue: string; const columnOrder: integer): integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Loop:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  isOK:boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := SpecialItemOrder;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  isOK := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  for Loop := 0 to lvTemp.Items.Count - 1 do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if columnOrder <> SpecialItemOrder then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      if (columnOrder >= 0) and (columnOrder < lvTemp.Columns.Count) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        isOK := (lvTemp.Items[Loop].SubItems[columnOrder] = aKeyValue);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    else

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      isOK := (lvTemp.Items[Loop].Caption = aKeyValue);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if isOK then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      Result := Loop;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      break;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVCommonClass.InitListViewColumns(const displayName: array of string;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const displayWidth: array of integer; var lvTemp: TListView): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if Assigned(cxxLVC) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    cxxLVC.InitLVColumns(displayName,displayWidth,lvTemp);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風class function TLVCommonClass.StrIsNumber(const str: PChar): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  p:Char;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  i:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  function CheckHex(p:Char):boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    k:Byte;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    k := Ord(P);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := ((k >= 48) and (k <= 57)) or ((k >= 65) and (k <= 70)) or ((k >= 97) and (k <= 102));

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  try

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    for i := 0 to Length(str)-1 do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      p := str[i];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      Result := CheckHex(p);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      if NOT Result then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風        break;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  except

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風function TLVCommonClass.UpdateDataFromListView(

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  const dataList: TStringList; var lvTemp: TListView): boolean;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風var

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  colIndex:integer;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  liTemp:TListItem;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  Result := false;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  if dataList.Count > 0 then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    colIndex := GetLVItemOrderByValue(lvTemp,dataList.Strings[GetColumnOrder+1],GetColumnOrder);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    if (colIndex <> SpecialItemOrder) then

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      lvTemp.Items.BeginUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      liTemp := lvTemp.Items[colIndex];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      CommonListItemProcess(dataList,liTemp,true);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //liTemp.Caption := dataList.Strings[dataIndex];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //while (dataIndex < dataList.Count) do

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //begin

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //  liTemp.SubItems[dataIndex-1] := dataList.Strings[dataIndex];

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //  Inc(dataIndex);

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      //end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      lvTemp.Items.EndUpdate();

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風      Result := true;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風    end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風  end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end;

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風

Delphi ListView快速操作通用實現 - hdw802 - 往事隨風end.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM