Delphi控制項繼承類,delphi 如何繼承dll的類

2025-03-31 10:05:27 字數 2588 閱讀 4468

delphi 如何繼承dll的類

1樓:網友

dll中的類只能在本dll裡繼承,不能讓外部繼承,要讓外部繼承只能用包(bpl),包是一種特殊的dll,編譯包時會生成乙個dcp檔案,在另乙個dll或者程式中引用它(在options->packages->build with run time packages里加),然後直接use包裡的單元名,然後繼承裡面的類就行了。

delphi窗體繼承

2樓:網友

--華麗的分割線---

答案如下:定義a= 原窗體單元中,窗體的類form1

b= 即將要繼承form1的新視窗類form2

先大致解釋一下a的來龍去脈:

a其實也是繼承delphi的視窗類,而在設計中,我們只是把其他一些控制項都加入到這個a中。

而現在要繼承他,來重複利用,一些東西,可以建立乙個類,這就是b了!

然後b是繼承a的!

設**:type

b=class(a)

.end;那麼要重寫裡面的事件,其實是不需要這麼做的,因為你在設計時做的事件。

其實的ide增加了事件**,然後將事件的方法關聯到對應的on事件中!

所以,b實際上是在a的原始定義狀態中進行!

那麼這樣的話,未免麻煩了很多!怎麼辦? 當然有辦法了,delphi提供框架。

框架就是將一堆窗體上的控制項集合,可以在設計期間當框架是乙個容器控制項!

但關鍵是,框架的出現就是為了更好的重複利用!

先新建乙個框架frames 在檔案,新建中,類似新建乙個新工程差不多!

然後,就出現乙個跟form設計幾面幾乎一樣的窗體,在這個窗體上放入控制項,並且可以預先設計事件**!然後儲存就ok了! 主要卻別就是框架也可以設定事件,但是沒有像視窗建立時的create事件!

然後,再回到自己的工程,在控制項面板中選擇frames控制項放入,就會提示到你之前儲存的框架了!

選擇即可,如果沒有提示,建議將製作的框架檔案跟工程檔案放到同一目錄下!

那麼接下來的事情,就更加簡單了,我在a中放入做好的框架,在a中修改內容,不會影響框架原設計,而是複製!

這樣在b中放入框架, 則可以設計各自的特性和功能作用了!

說了好多,從繼承說到框架,但lz需要的是繼承,而繼承的目的就是要重複利用,然而在delphi的。

介面設計而言,要一大堆設定好的控制項進行快速重複利用, 框架才是正路!

所以,答案中只大致描述繼承方法,而不深入!

--華麗的分割線---

碼這麼多字累嗎? 我不知道,lz你告訴我吧,我只知道我很認真幫你解決問題!

如仍有疑問,call me

如果你覺得我幫到了你的忙,記得采納答案,並點一下贊同! 謝了!

外掛程式中 如何繼承原窗體中的函式???delphi

3樓:網友

問題有點不清楚,外掛程式中繼承原窗體中的函式?這句話不好理解,是窗體放置外掛程式,還是指子類?如果是在子類中,可以使用關鍵字override改寫祖先類中使用virtual關鍵字宣告虛方法。

如果在改寫的方法只是想在父類的執行之後增加些自己的處理,而不是完全覆蓋掉父類中的**,可以使用inherited關鍵字。如果僅僅是繼承原類中的一些過程方法和屬性,只要直接在相應域中直接宣告一下就可以了。

4樓:網友

如果不是同乙個二進位檔案,根本就沒法繼承的。

請問,delphi 中子類該如何呼叫父類方法?

5樓:網友

類方法呼叫。

inherited(繼承):就是呼叫父類的函式。如果不帶引數就是預設呼叫父類的同名函式;如果帶引數則表明子類中的函式的引數個數可能比祖先類要多取其中的幾個引數傳過去。

例如[delphi] view plaincopy祖先類有個函式 create(aname:string);

子類有個函式 create(aname:string;acomponent:tobject);override;

那麼子類的create函式內就可以這樣呼叫祖先類:

procedure :string;acomponent:tobject);

begininherited create(aname);

end;

delphi中繼承tframe時,提示有乙個沒有名字的控制項?

6樓:網友

既然有可能dbgrid的問題,你要不先把instrframe的dbgrid去掉。如果確定了dbgrid的問題,你再刪一些column。只能這樣試一下了。

7樓:下揚州啊

不是欄位,看看你其他的控制項。

delphi 子窗體如何繼承主窗體的方法

8樓:網友

子窗體和主窗體 是繼承關係麼?

如果是繼承關係,只要主窗體任何區域宣告乙個變數 都可以被繼承的。

我覺得你說的不是繼承吧?

應該就是tform1和tform2這樣的,那麼只要在你主窗體的 public區域宣告乙個變數,然後在子窗體裡面直接就行了。

c多重繼承父類存在同名函式,C 多重繼承 父類存在同名函式

這個特性是微軟的擴充套件,c primer講的是標準c 所以不會有這個內容。解決辦法 把ibase宣告為 inte ce inte ce ibase1 inte ce ibase2 class inherit public ibase1,public ibase2 void inherit ibas...

介面可以繼承介面嗎,抽象類可以繼承介面嗎,抽象類可以繼承實體類嗎

1,介面可以繼 bai承介面嗎?du 可以,用extends關鍵字,而且支援多zhi重dao繼承。2,抽象類可專以繼承介面嗎?屬 這種說法有問題,是實現,用implements關鍵字,不能叫繼承 extends 3,抽象類可以繼承實體類嗎?可以。抽象類可以有實體方法,當然可以繼承實體類了。1 介面可...

快手d類違規是啥快手作品D類違規,懲罰是什麼

不少朋友都喜歡玩快手,但有時候由於操作不 慎會導致違規的情況出現,如果您在使用的過程中出現了快手d類違規是啥?下面就為您帶來相關的介紹。2 快手的違規型別有 a類的違規最終,b類違規適中,c類違規最輕,一般情況下b類違規最多,a類基本都是凍結直播間多久或者是直接封號,當然有時候也會提示出現d類違規,...