修改了delphi的classes.pas后,为何不起作用?

时间:2021-09-07 17:33:33
修改了delphi的classes.pas后,为何不起作用?
删除了D7下的classes.dcu,然后重新编译工程,发现跟未修改Classes.pas前的效果一样
classes.pas中加断点也未中断
如何才能做到重新编译classes.pas

10 个解决方案

#1


修改了delphi的classes.pas后,为何不起作用?

#2


楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。

#3


引用 2 楼 ccrun 的回复:
楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。

如何去掉运行时包?

#4


引用 2 楼 ccrun 的回复:
楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。


在工程中使用了TStringList类,TStringList将空格也当做了Delimiter,所以修改了Classes.pass中的SetDelimtedText方法
不知如何使得修改后的Classes.pas生效

#5


Project-->Options-->Packages-->取消 Build with runtime packages 前面的对钩

这是针对D7的设置,其他版本路径略有差异。

#6


引用 4 楼 seleron 的回复:
在工程中使用了TStringList类,TStringList将空格也当做了Delimiter,所以修改了Classes.pass中的SetDelimtedText方法
不知如何使得修改后的Classes.pas生效


你的小红花怎么搞来的。
单纯为了StringList的Delimiter问题就修改Classes.pas,是得不偿失的。你只需要把关键的那个函数覆盖即可。

#7


引用 5 楼 ccrun 的回复:
Project-->Options-->Packages-->取消 Build with runtime packages 前面的对钩

这是针对D7的设置,其他版本路径略有差异。


是一个exe工程,这里一直是将bpl编译到exe里的,没有打过勾

#8


想起来了,Delphi中还需要将修改后的.pas文件复制到Lib目录下,然后关闭Delphi重新打开,再去编译你的工程。

#9


引用 8 楼 ccrun 的回复:
想起来了,Delphi中还需要将修改后的.pas文件复制到Lib目录下,然后关闭Delphi重新打开,再去编译你的工程。


搞定了,修改后的pas如果不放入lib下,找不到,无法编译

#10


奇怪的是,为何我开始时删除了D7下的classes.dcu还能编译工程
现在删除后居然报错找不到classes了
否则也不会发这个帖子了

#1


修改了delphi的classes.pas后,为何不起作用?

#2


楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。

#3


引用 2 楼 ccrun 的回复:
楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。

如何去掉运行时包?

#4


引用 2 楼 ccrun 的回复:
楼主用错马甲了吧。修改了VCL源码加入到工程中,需要去掉运行时包编译才会有效果。


在工程中使用了TStringList类,TStringList将空格也当做了Delimiter,所以修改了Classes.pass中的SetDelimtedText方法
不知如何使得修改后的Classes.pas生效

#5


Project-->Options-->Packages-->取消 Build with runtime packages 前面的对钩

这是针对D7的设置,其他版本路径略有差异。

#6


引用 4 楼 seleron 的回复:
在工程中使用了TStringList类,TStringList将空格也当做了Delimiter,所以修改了Classes.pass中的SetDelimtedText方法
不知如何使得修改后的Classes.pas生效


你的小红花怎么搞来的。
单纯为了StringList的Delimiter问题就修改Classes.pas,是得不偿失的。你只需要把关键的那个函数覆盖即可。

#7


引用 5 楼 ccrun 的回复:
Project-->Options-->Packages-->取消 Build with runtime packages 前面的对钩

这是针对D7的设置,其他版本路径略有差异。


是一个exe工程,这里一直是将bpl编译到exe里的,没有打过勾

#8


想起来了,Delphi中还需要将修改后的.pas文件复制到Lib目录下,然后关闭Delphi重新打开,再去编译你的工程。

#9


引用 8 楼 ccrun 的回复:
想起来了,Delphi中还需要将修改后的.pas文件复制到Lib目录下,然后关闭Delphi重新打开,再去编译你的工程。


搞定了,修改后的pas如果不放入lib下,找不到,无法编译

#10


奇怪的是,为何我开始时删除了D7下的classes.dcu还能编译工程
现在删除后居然报错找不到classes了
否则也不会发这个帖子了