tcollection

    2熱度

    1回答

    我試圖從dll函數返回我自己的對象(從TCollection派生)。我使用FastMemoryManager,但沒有成功...所以我試圖返回一些對象的動態數組。 當然在dll函數中設置數組的長度。 它工作很好,但分配的內存不釋放。 (我用Windows tarsk管理器測量)。有沒有可能如何釋放動態數組? ,其調用的DLL功能是在線程,並且在最後,我有如下的步驟: for i := 0 to le

    5熱度

    3回答

    我需要了解制作組件並生成和管理子組件的基礎知識。我最初嘗試通過創建一個TCollection,並試圖在每個TCollectionItem上設置一個名稱。但我知道這並不像我所希望的那麼容易。 所以現在我要再次從頭開始這個項目,這次我想說得對。這些子組件不是可視組件,不應具有任何顯示或窗口,僅基於TComponent。包含這些子組件的主要組件也將基於TComponent。所以這裏沒有什麼是可視化的,我

    2熱度

    3回答

    我需要一個多態對象(不同的對象類,但具有一個公共基類)的列表,我可以'持久'作爲表單文件的一部分。 TList不是持久的,並且TCollection不是多態的。 我可以推出自己的產品,但不想重新發明輪子。想法?

    1熱度

    3回答

    我是Delphi新組件開發,因此想知道,是否有可能實現我的任務。 我需要創建一個基於TScrollBox的視覺組件(用戶控件),它將代表一堆TPanel,所有面板將在TScrollBox內對齊爲「頂部」,並且可以具有不同的高度。它必須充當TCollection(添加,刪除,重新排序),並且必須允許用戶在設計時將其他控件添加到這些面板中。 我創建這些類的成分: type TPanelsGr

    1熱度

    1回答

    我有類型 TNotifyReply = A類(TCollectionItem) TNotifyReplylist = A類(TOwnedCollection) NotifyReplylist:= TNotifyReplylist.Create(個體經營, TNotifyReply); 調用這個函數(任意次數)後,數一數仍爲零 function TNotifyReplylist.addItem: T

    0熱度

    3回答

    我怎樣才能找到名稱並獲得對象集合中的Item? procedure TfoMain.InitForm; begin // Liste des produits de la pharmacie 1 FListeDispoProduit := TListeDispoProduit.Create(TProduit); with (FListeDispoPr

    1熱度

    1回答

    繼承我有一個從TCollection繼承一個類的類itemClass時(可以稱之爲「TMyCollection」),我不得不從它繼承一個新的類(可以稱之爲「TMyItems」) 通常我們在TCollection的構造函數中傳遞ItemClass類型,但在我的情況下,TMyCollection的構造函數被新的構造函數覆蓋,該構造函數不帶ItemClass,它只接受Owner。 如果繼承的構造函數不接

    1熱度

    1回答

    我分析DBGrids.pas單元。有已公佈的FieldName財產 property FieldName: String read FFieldName write SetFieldName; 它宣佈爲一個字符串,但在Object Inspector它顯示爲可編輯的ComboBox一個TColumn類(TDataFieldProperty) 我分析了幾乎所有DBGrids單元,不能找到那個把戲

    1熱度

    1回答

    這與接受的答案another question I asked具體相關。在我已經現有集合到這個新的「命名的集合項目」結構(如前面的問題中詳細說明)的轉換,我碰到一個編譯器錯誤... [Error] JDSockets.pas(818): Incompatible types: 'tagWNDCLASSA' and 'Class reference' 這是從Register未來過程中,在第一線Reg

    4熱度

    3回答

    我試圖實現MoveItemUp和MoveItemDown方法,將選定的行向上或向下移動到一個TCollection內的一個索引。 下面的代碼添加到我的TCollection的子類不起作用: procedure TMyCollection.MoveRowDown(index: Integer); var item:TCollectionItem; begin if index>=Co