标签: pascal

Delphi中重复的setter逻辑

对于类的每个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重复所有这些行?

delphi pascal delphi-2006

9
推荐指数
2
解决办法
363
查看次数

如何在Pascal中打印制表符?

我试图在所有Internets中找出在Pascal中打印简单选项卡的特殊字符.我必须在CLI程序中格式化一个表,这将非常方便.

pascal special-characters

9
推荐指数
2
解决办法
1万
查看次数

什么是Pascal风格的字符串?

Photoshop文件格式的文档中提到的Pascal字符串没有解释它们是什么.

那么,它们是什么,它们是如何编码的?

string encoding pascal

9
推荐指数
1
解决办法
2344
查看次数

在delphi中测试泛型的类型

我想用一些方法在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但这似乎适合于对象而不是泛型类型.

我甚至不确定帕斯卡是否可行

delphi generics pascal delphi-xe6

9
推荐指数
2
解决办法
1930
查看次数

什么是首选的Pascal文件扩展名?

是吗:

  • .p
  • .pl
  • .pas
  • .pascal

或者是其他东西?

如果您不使用首选扩展名,各种Pascal编译器(尤其是fpc)会不会出现问题?

pascal file

8
推荐指数
1
解决办法
1万
查看次数

什么是一致的数组?

我试图弄清楚一致的数组是什么,但我无法在任何地方找到一个好的定义.任何人都可以解释这是什么,并给我一个基本的例子,他们的目的是什么?

谢谢

arrays pascal

8
推荐指数
1
解决办法
2318
查看次数

如何通知Free Pascal Compiler为已编译的应用程序设置区域设置ID

在Delphi中,查看项目属性时有一个选项VersionInfo-> Language-> Locale ID.
我正在徘徊如何为Free Pascal下编译的程序设置这样的属性.
欢迎任何解决方案:命令行参数预处理器指令,如{$key value}; 相当于德尔福.

delphi locale pascal fpc

8
推荐指数
2
解决办法
1260
查看次数

用于更改单元名称及其所有引用的工具

如果我对单元进行重大更改,我想更改其名称以明确这是一个不同的版本,并避免与其他存档版本混淆,例如: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

8
推荐指数
3
解决办法
1845
查看次数

用于调用OpenSSL EVP函数的Delphi/Pascal示例

有没有人有一个Delphi/Pascal示例来调用下面的OpenSSL函数...

http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/openssl/src/openssl.pas?revision=17634&view=markup

我特别感兴趣的是:

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)

delphi pascal openssl freepascal

8
推荐指数
1
解决办法
7748
查看次数

如果使用调试编译器设置编译exe文件,是否更容易逆向工程或破坏Delphi程序?

如果我在发布程序之前意外忘记切换到发布配置,那么对我的代码进行反编译或反向工程更容易吗?

例如,如果我不小心使用以下调试编译器选项:

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)

我已经阅读了帮助,除了地图文件也以某种方式与二进制文件一起发布之外,我可以告诉它没有多大区别,所以我想知道如果有人有地图文件会有多大差异?

delphi debugging pascal

8
推荐指数
1
解决办法
582
查看次数