Delphi設法使TLabel存在于FMX和VCL。 那么,我如何創建兩個組件,都有相同的名字,只是一個用于VCL,一個用于FMX?
是的,我知道我可以使用ifdefs并且每次都重新編譯庫。 但是這并不是完全干凈的代碼。
uj5u.com熱心網友回復:
在不同的單元作用域中實作您的兩個組件,這些作用域正是為此目的而創建的。
例如,在Vcl.MyUnit.pas中為VCL實作TMyComponent,并在FMX.MyUnit.pas中為FMX實作TMyComponent。
然后,要在任何其他單元中使用TMyComponent,你可以:
使用{$IFDEF}s在uses子句中有條件地指定Vcl.MyUnit或FMX.MyUnit。
為VCL和FMX創建單獨的專案,其中VCL專案在其Unit Scope Names編譯器設定中指定,而FMX專案指定FMX,然后你可以在uses子句中只使用MyUnit。
還請參見為您自己的組件添加單元范圍名稱。
作為參考,VCL的TLabel在Vcl.StdCtrls單元范圍中,而FMX的TLabel在FMX.StdCtrls單元范圍中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/316471.html
標籤:
