相关疑难解决方法(0)

德尔福和枚举

Delphi是否在C中使用枚举类似物?

delphi

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

从Delphi中的类引用变量访问类常量

我正在使用Delphi 2007来维护一个旧项目,我在从Class Reference变量访问类常量时遇到问题,我总是得到父类常量而不是子类常量.

假设有一个父类,一些子类,一个类引用,最后是一个const数组来存储类引用以进行循环.

看看以下简单的程序:

program TestClassConst;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type

  TParent = class
  const
    ClassConst = 'BASE CLASS';
  end;

  TChild1 = class(TParent)
  const
    ClassConst = 'CHILD 1';
  end;

  TChild2 = class(TParent)
  const
    ClassConst = 'CHILD 2';
  end;

  TParentClass = class of TParent;
  TChildClasses = array[0..1] of TParentClass;

const
  ChildClasses: TChildClasses = (TChild1, TChild2);

var
  i: integer;
  c: TParentClass;
  s: string;

begin
  try
    writeln;

    writeln('looping through class reference array');
    for i := low(ChildClasses) to high(ChildClasses) do begin
      c := …
Run Code Online (Sandbox Code Playgroud)

delphi inheritance const class-constants

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

Delphi"default"关键字,旧版Delphi版本中包含Record类型

我在Delphi Detours库中有这个代码,我正在尝试移植:

type
  TInstruction = record
    Archi: Byte; { CPUX32 or CPUX64 ! }
    AddrMode: Byte; { Address Mode }
    Addr: PByte;
    VirtualAddr: PByte;
    NextInst: PByte; { Pointer to the Next Instruction }
    OpCode: Byte; { OpCode Value }
    OpType: Byte;
    OpKind: Byte;
    OpTable: Byte; { tbOneByte,tbTwoByte,... }
    OperandFlags: Byte;
    Prefixes: Word; { Sets of Prf_xxx }
    ...
  end;

var
  Inst: TInstruction;
begin
  ...
  Inst := default (TInstruction); // <-
  Inst.Archi := CPUX;
  Pvt := PPointer(AIntf)^; // vTable !
  PCode …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-7 delphi-5

7
推荐指数
1
解决办法
597
查看次数

Delphi 7是否支持inline关键字?

procedure display;inline;
begin
  showmessage('sakthi');
end;

procedure TFrmInline.BtnDisplayClick(Sender: TObject);
begin
  display;
end;
Run Code Online (Sandbox Code Playgroud)

在这个程序中,如果我编译它显示错误"声明预期但内联发现".

delphi delphi-7

4
推荐指数
1
解决办法
561
查看次数

Deplhi 5中的编译器指令SETPEFlags

我有一个使用Delphi 5.0构建的应用程序,工作正常,没有任何问题.但是当运行大型报表时,我的应用程序需要超过2 Gb的内存.做分析后发现,使用Compiler指令SETPEFlags我们可以将32位应用程序内存增加到4 GB.

我试图在我的程序中设置Delphi 5.0,但得到错误"无效的编译器指令".有人可以建议任何解决方法,而无需重建其他版本的应用程序.或者那些被添加到Delphi的版本?

提前致谢.

delphi delphi-5

3
推荐指数
1
解决办法
505
查看次数

各种Delphi [语言,RTL,VCL]的新内容列表?

作为一个被困在旧版Delphi并最近升级到D2010的人,我认为我仍然使用D5时代的语言,RTL和VCL功能,并且不使用这些新功能,因为那些文件在某些​​方面是分散的.博客圈.所以我想问一下,如果有一个类似于Python的新文档的清单- 清晰简洁.

顺便说一句,请不要截屏.它们最近看起来相当丰富(可能是因为CodeRages),但我发现它们非常不直观.让我们把视频格式的文档留给RoR社区,我们应该:).

delphi

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

我可以使用比学校更新的Delphi版本来完成我的课程吗?

我们开始在学校学习Pascal使用Delphi 7(这是旧的一点点),当我检查维基百科和Delphi网站时,似乎有其他版本,最后一个在8月31日发布的是Delphi 10 Seattle.所以我的问题是我应该下载与我的学校(Delphi 7)相同的东西,或者如果我使用Delphi 10这是正常的吗?我可以将项目从Delphi 7导入Delphi 10,反之亦然吗?

delphi delphi-7 delphi-10-seattle

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

如何在没有EAbort的情况下中止?

有没有办法在不引发EAbort异常的情况下中止方法的执行?

这是一个问题:

....

try
  i := strtoint(Edit1.Text);
  if not (i=10) then
  begin
    showmessage('Value for I must be 10 !');
    sysutils.abort;
  end;
except
  showmessage('Wrong Value for i !');
end;

showmessage('Execution continue ...');

...
Run Code Online (Sandbox Code Playgroud)

在这个示例中,如果i的值为5,程序执行将不会中止...它将显示消息"我必须为10的值!",然后消息"i的值错误!" (因为引发了EAbort异常)然后消息"Execution continue ...".我知道如何解决这种情况,但我需要没有EAbort异常的sysutils.abort的通用解决方案.

delphi exception

-4
推荐指数
1
解决办法
1277
查看次数