对于类的每个setter,我必须实现一些事件逻辑(OnChanging,OnChanged):
procedure TBlock.SetWeightIn(const Value: Double);
var OldValue: Double;
begin
OldValue := FWeightIn;
DoOnChanging(OldValue, Value);
FWeightIn := Value;
DoOnChanged(OldValue, Value);
end;
procedure TBlock.SetWeightOut(const Value: Double);
var OldValue: Double;
begin
OldValue := FWeightOut;
DoOnChanging(OldValue, Value);
FWeightOut := Value;
DoOnChanged(OldValue, Value);
end;
Run Code Online (Sandbox Code Playgroud)
你能否建议一种方法来实现这一点,而不必为每个setter重复所有这些行?
我试图在所有Internets中找出在Pascal中打印简单选项卡的特殊字符.我必须在CLI程序中格式化一个表,这将非常方便.
在Photoshop文件格式的文档中提到的Pascal字符串没有解释它们是什么.
那么,它们是什么,它们是如何编码的?
我想用一些方法在delphi中编写一个函数,如下所示
procedure Foo<T>;
begin
if T = String then
begin
//Do something
end;
if T = Double then
begin
//Do something else
end;
end;
Run Code Online (Sandbox Code Playgroud)
即:我希望能够根据泛型类型做不同的事情
我尝试过使用TypeInfo,System但这似乎适合于对象而不是泛型类型.
我甚至不确定帕斯卡是否可行
是吗:
.p.pl.pas.pascal或者是其他东西?
如果您不使用首选扩展名,各种Pascal编译器(尤其是fpc)会不会出现问题?
我试图弄清楚一致的数组是什么,但我无法在任何地方找到一个好的定义.任何人都可以解释这是什么,并给我一个基本的例子,他们的目的是什么?
谢谢
在Delphi中,查看项目属性时有一个选项VersionInfo-> Language-> Locale ID.
我正在徘徊如何为Free Pascal下编译的程序设置这样的属性.
欢迎任何解决方案:命令行参数或预处理器指令,如{$key value}; 相当于德尔福.
如果我对单元进行重大更改,我想更改其名称以明确这是一个不同的版本,并避免与其他存档版本混淆,例如:CSVUtils.PAS成为CsvUtilsNew.PAS
但是必须手动更改其他单位对它的所有引用,例如:
Unit ManiForm
Uses
CSVUtils
Run Code Online (Sandbox Code Playgroud)
变
Unit ManiForm
Uses
CsvUtilsNew
Run Code Online (Sandbox Code Playgroud)
这在复杂的项目中非常费力.
伊卡洛斯非常善于找到所有参考文献,但我找不到任何可以自动更新所有其他单位的工具.
有谁知道任何自动更新单位参考的工具?
非常感谢
有没有人有一个Delphi/Pascal示例来调用下面的OpenSSL函数...
我特别感兴趣的是:
procedure EVP_CIPHER_CTX_init(a: PEVP_CIPHER_CTX);
function EVP_CIPHER_CTX_cleanup(a: PEVP_CIPHER_CTX): cint;
function EVP_CIPHER_CTX_set_key_length(x: PEVP_CIPHER_CTX; keylen: cint): cint;
function EVP_CIPHER_CTX_ctrl(ctx: PEVP_CIPHER_CTX; type_, arg: cint; ptr: Pointer): cint;
//
function EVP_EncryptInit(ctx: PEVP_CIPHER_CTX; const chipher_: PEVP_CIPHER;const key, iv: PByte): cint;
function EVP_EncryptUpdate(ctx: PEVP_CIPHER_CTX; out_: pcuchar;outlen: pcint; const in_: pcuchar; inlen: cint): cint;
function EVP_EncryptFinal(ctx: PEVP_CIPHER_CTX; out_data: PByte; outlen: pcint): cint;
function EVP_DecryptInit(ctx: PEVP_CIPHER_CTX; chiphir_type: PEVP_CIPHER;const key, iv: PByte): cint;
function EVP_DecryptUpdate(ctx: PEVP_CIPHER_CTX; out_data: PByte;outl: pcint; const in_: PByte; inl: cint): cint;
function EVP_DecryptFinal(ctx: PEVP_CIPHER_CTX; …Run Code Online (Sandbox Code Playgroud) 如果我在发布程序之前意外忘记切换到发布配置,那么对我的代码进行反编译或反向工程更容易吗?
例如,如果我不小心使用以下调试编译器选项:
1. Compiling:
- StackFrames = True
2. Debugging
- Debug information = Debug information
- Local Symbols = True
- Symbol Reference info = Reference Info
3. Linking
- Map File = Detailed
Run Code Online (Sandbox Code Playgroud)
我已经阅读了帮助,除了地图文件也以某种方式与二进制文件一起发布之外,我可以告诉它没有多大区别,所以我想知道如果有人有地图文件会有多大差异?
pascal ×10
delphi ×6
arrays ×1
debugging ×1
delphi-2006 ×1
delphi-xe6 ×1
encoding ×1
file ×1
fpc ×1
freepascal ×1
generics ×1
locale ×1
openssl ×1
string ×1