2013-04-06 76 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