2012-01-02 192 views
0

我想實現我自己的DBGrid我的問題是,我不知道太多關於組件我怎麼能重寫onkeydown事件?實現我自己的DBGrid

關於擴展組件功能的教程會很棒。

+3

從你的問題我推斷你是這個問題的初學者。你不應該從編寫網格組件開始;它非常複雜。 – 2012-01-02 13:52:09

+0

我只想擴展功能,像增量搜索這樣的基本事情,如果我重寫KeyDown方法,它將足夠我猜... – opc0de 2012-01-02 14:08:32

+0

頭[這裏](http://www.delphidabbler.com/tips/83)用於TComboBox示例的「實現增量搜索功能」,以及TDBGrid示例的[此處](http://cc.embarcadero.com/item/27541)。 – menjaraz 2012-01-02 14:31:57

回答

3

您不會覆蓋事件,而是觸發它們的方法。 OnKeyDown事件被KeyDown方法觸發,該方法又被DoKeyDown方法調用(由WM_KEYDOWN消息觸發)。所以其中之一就是您必須在自定義控件中重寫的方法,具體取決於您想要在哪個階段攔截按鍵。

順便說一句,Peter下面有一篇關於VCL密鑰消息處理如何工作的內部文章:A Key's Odyssey。確保你也讀過。

+0

感謝您的回答,如果您可以發佈一個簡單的示例或關於擴展組件功能的文章將會很棒。 – opc0de 2012-01-02 14:02:14

+0

在因特網上搜索「Delphi 7 for Windows組件編寫指南」的pdf版本。 – menjaraz 2012-01-02 14:08:44

+0

對於一個簡單的例子來說,這個話題太複雜了......對於自定義的delphi組件,只有谷歌和大量有用的東西應該出現,第一個鏈接似乎很不錯:http://delphi.about.com/od /vclusing/a/customvcldev.htm和http://delphi.about.com/library/bluc/text/uc080701a.htm – ain 2012-01-02 14:13:07