Lazarus Pascal:如何调试 Widget Set(多行 Caption/Hint 问题)
Lazarus Pascal: How to debug a Widget Set (multiline Caption/Hint issue)
我不是最高级的程序员,但喜欢与 Lazarus 一起工作。
不幸的是,时不时会出现问题或错误(例如 this one, bugreport),我想帮忙解决一下,看看我是否可以尝试自己调试并提供一个可能 "fix".
我的问题是:如何调试小部件集或 Object Inspector?
简短原因:
当我在 Windows 或 Linux 下输入多行标题或提示时,一切正常。然而,在 MacOS X (Carbon) 下,换行符被 Object Inspector 或 widget set 删除,我不知道去哪里尝试修复这个问题。
凭什么我能弄清楚自己;
我已将问题缩小到 Object Inspector 或 Carbon 小部件集。手动编辑表单 (lfm) 有效,在运行时在代码中执行此操作,并且 multi-line 标题或提示在 Windows 和 Linux 下工作正常。
所以我怀疑 Object Inspector 使用的 Carbon widget-set 做错了什么。
非常感谢任何帮助我入门的人。
如果这个问题不合适或不够具体,我深表歉意 - 我只是想寻求调试此问题的帮助。
IDE 对象检查器实际上是 TTIPropertyGrid 的高级版本。
如果你想调试它,你可以处理包并在一个简单的项目中测试它:
然后添加一个简单的处理程序来测试项目表单上的检查器:
procedure TForm1.FormCreate(Sender: TObject);
begin
TIPropertyGrid1.TIObject := self;
end;
当您修改包 RunTimeTypeInfoControls 中的源代码时,更改不会在 IDE 中可见,而是在 运行-时间,在您的示例项目中(包将自动重新编译)。
如果错误来自 属性 编辑器本身(可能是 TStringsPropertyEditor )。
为了避免任何费力的操作,您可以在匹配编辑器的副本上测试您的更改 class 并将其注册到测试项目的初始化部分以替换默认值,也许 有问题,版本。
我不是最高级的程序员,但喜欢与 Lazarus 一起工作。
不幸的是,时不时会出现问题或错误(例如 this one, bugreport),我想帮忙解决一下,看看我是否可以尝试自己调试并提供一个可能 "fix".
我的问题是:如何调试小部件集或 Object Inspector?
简短原因: 当我在 Windows 或 Linux 下输入多行标题或提示时,一切正常。然而,在 MacOS X (Carbon) 下,换行符被 Object Inspector 或 widget set 删除,我不知道去哪里尝试修复这个问题。
凭什么我能弄清楚自己; 我已将问题缩小到 Object Inspector 或 Carbon 小部件集。手动编辑表单 (lfm) 有效,在运行时在代码中执行此操作,并且 multi-line 标题或提示在 Windows 和 Linux 下工作正常。 所以我怀疑 Object Inspector 使用的 Carbon widget-set 做错了什么。
非常感谢任何帮助我入门的人。
如果这个问题不合适或不够具体,我深表歉意 - 我只是想寻求调试此问题的帮助。
IDE 对象检查器实际上是 TTIPropertyGrid 的高级版本。 如果你想调试它,你可以处理包并在一个简单的项目中测试它:
然后添加一个简单的处理程序来测试项目表单上的检查器:
procedure TForm1.FormCreate(Sender: TObject);
begin
TIPropertyGrid1.TIObject := self;
end;
当您修改包 RunTimeTypeInfoControls 中的源代码时,更改不会在 IDE 中可见,而是在 运行-时间,在您的示例项目中(包将自动重新编译)。
如果错误来自 属性 编辑器本身(可能是 TStringsPropertyEditor )。
为了避免任何费力的操作,您可以在匹配编辑器的副本上测试您的更改 class 并将其注册到测试项目的初始化部分以替换默认值,也许 有问题,版本。