2013-04-06 56 views
0

也許我是個盲人,但我不能在類的的Free Pascal源文件的實現和其他一些單位,比如系統發現。大多數情況下,但不是唯一的,我感興趣的TObjectTPersistentTControl代碼代碼。我在SourceForge上的Lazarus和FP站點搜索了這兩個文件。我的問題是文件列表非常大。谷歌拒絕搜索,因爲robots.txt「類」單位實施

有一個lclclasses.pas單位,但它不是我要找的 - 在uses塊它指的是類,但沒有文件(我的意思是我找不到它)像「類」。 PAS」。

Here我發現了TControl的實現,但這在層次結構中太過分了。

this page有一個信息是,在TPersistent「classesh.inc」的定義,我下載的源代碼,它確實是在RTL \ objpas \類\ classesh.inc,但是,似乎這個文件只是interface部分單位。

我也將這個問題標記爲「delphi」,因爲實際上如果有一些Delphi的開源代碼,我也可以接受。如果這個基類TObjectTPersistent的實現是某種內置功能(System單元,我想),我也可以看看C語言(或任何其他語言)的源代碼。

任何人都可以幫助我找到Classes單元的實現和在那裏定義的對象嗎?

+1

它們可以放在.inc文件中 – 2013-04-06 20:50:05

+0

我明白了。文件被劃分而不是單位。謝謝@DavidHeffernan – Voitcus 2013-04-06 21:05:24

+0

我建議你們兩個:@DavidHeffernan在答案中轉換該評論,並且Voitcus接受它。對於那些從拉撒路開始的人來說,這並不明顯。 – 2013-04-19 17:01:51

回答

2

由於FPC支持許多不同的平臺上,RTL代碼的結構有些複雜。

但是,您可以在source\rtl\objpas目錄下找到您感興趣的RTL代碼的平臺無關部分。

  • Classes的代碼包含在source\rtl\objpas\classes的包含文件中。相關文件爲classesh.incclasses.inc。前者包含接口部分的代碼,後者則是實現部分的代碼。
  • System單位是非常具體的平臺。根據source\rtl查找您的平臺。
  • 對於source\rtl\objpas\sysutilsSysUtils的樣子。
+0

請注意,我甚至不是遠程的FPC專家。我寫了這個答案主要是因爲我被要求。如果我有什麼問題,我將不勝感激。 – 2013-04-22 08:25:45

+0

你不必成爲專家來回答這個問題:)再次感謝。 – Voitcus 2013-04-22 08:38:39