小编HMc*_*McG的帖子

在记录中包装TStringList

我倾向于使用Delphi的TStringList进行文本操作,所以我写了很多程序/函数,如:

var
  TempList: TStringList;
begin
  TempList:= TStringList.Create;
  try
    // blah blah blah do stuff with TempList   


  finally
    TempList.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

切断创建和释放这样一个常见的实用程序类会很好.

因为我们现在有方法的记录,是否可以在记录中包装类似TStringList的类,所以我可以:

var
  TempList: TRecordStringList;
begin
  // blah blah blah do stuff with TempList   


end;
Run Code Online (Sandbox Code Playgroud)

delphi records tstringlist

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

重新创建损坏的Delphi表单

我收到了一个我想要改编的实用程序的源代码,但似乎有.dfm文件以二进制格式存储,其中一个.dfm文件似乎是coRruPted.我也有编译的.exe文件.

有没有办法从.exe中提取表单?

我可以从相关的.pas文件中看到表单类型声明和表单上的组件.如何从头开始重新创建表单,并将其"附加"到原始.pas文件?

forms delphi vcl reverse-engineering

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

自动删除Delphi IFDEf编译器指令

我目前正在处理'继承'代码,该代码具有(随机分散)一大堆基于Delphi版本的条件编译器指令,返回到Delphi 2.从现在开始,所有开发都将采用Delphi 2009或未来.Delphi 2009中是否有一个工具或插件,它会根据指定的"最小"版本自动删除编译器条件代码段?

delphi compiler-directives delphi-2009

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

是否有充分的理由将Windows文件名扩展名限制为三个字符?

我正在创建一个实用程序,它将以特定的二进制格式将数据存储在平面文件中.我希望文件扩展名特定于我的应用程序.是否有任何原因,除了旧的8.3文件名限制,将扩展名限制为3个字符,如果没有,限制是什么?我可以拥有myfilename.MyExtensionSoHandsOffEverybodyElse吗?

windows filesystems

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

锁定RAD Studio内部浏览器安全性

我使用Firefox作为我的Web浏览器,主要用于访问加载项,如Flashblock和No-script.我昨天注意到用于欢迎页面等的RAD Studio内部浏览器启用了脚本和Active X等.有没有办法禁用脚本,或者更好的是,阻止内置浏览器中对非本地源的所有访问?

browser delphi security delphi-2009

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

如何在Delphi中传递作为参数的范围?

在Delphi中,我可以定义一系列字符或整数,如下所示:

var
  a,i: integer;
  b: char;
  intrange: 1..9;
  charrange: '?' .. '?';

begin

  for a := low(IntRange) to high(IntRange) do
  begin
    Memo1.Lines.Add('Integer Range Iteration = ' + intToStr(a) ) ;
  end;

  i:=0;
  for b := low(charrange) to high(charrange) do
  begin
    i := i + 1;
    Memo1.Lines.Add('Character Range Iteration = ' + intToStr(i) + ',   value = ' + b +'  ord '+ inttostr(ord(b))) ;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

如何将范围作为参数传递给函数?

delphi range

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

Delphi/RAD Studio工具提示扩展视图

我目前在笔记本电脑上安装了Delphi 2007和Delphi XE.弹出代码洞察工具提示视图在XE安装中受到限制.我似乎记得这是在编辑器选项的某个地方,但找不到它.

有人可以告诉我在哪里打开扩展的工具提示视图?

见附图 - D2007在顶部,DXE在下面 在此输入图像描述

delphi tooltip

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

在RAD Studio 2009中更改编辑器字体

我可以在[工具] [选项]编辑器选项/显示设置表单下更改RAD Studio 2009中的编辑器字体,但字体列表非常有限,并且不显示所有已安装的字体.有没有办法在选择中添加字体?

通过在[HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Editor\Options]下的注册表中设置字体名称,可以解决此问题.

delphi delphi-2009

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

隐藏在Delphi中的嵌套记录信息

我有一个相对复杂的数据结构来建模.我想用Delphi中的记录结构来做这个,结构很复杂,足以证明将它拆分成嵌套记录是正确的.一个简化的例子:

    type
      TVertAngle = record
      strict private
        fDecDegrees: Double;
        fDegrees: integer;
        fMinutes: integer;
        fDeciSeconds: integer;
        function GetAngle: Double;
        function GetRadians: Double;
      public
        Valid: Boolean;
        procedure SetAsString(const Value: string; const AngleType: TInfoUnits);
        property DecDegrees: Double read GetAngle;
        property Radians: Double read GetRadians;
      end;

~~~~ other sub record declarations ~~~~~~

  TDataRecord = record
  strict private
    fHorzDistance: Double;
    fLeicaData: TRawMessageData;
    fUpdateTime: TDateTime;
    function DecodeGsi8(GsiWord: string): TGSiWord;
    function DecodeGsi16(GsiWord: string): TGSiWord;
  public
    GsiWord: TGSiWord;
    Valid: Boolean;
    InputMode: TDataModes;
    HorzAngle: THorzAngle;
    VertAngle: TVertAngle;
    HorzRange: TDistance; …
Run Code Online (Sandbox Code Playgroud)

delphi oop records

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

在D2006/D2009中支持Delphi 7应用程序

当Turbos问世时,我开始使用Delphi进行职业编程,并拥有Delphi 2006 Turbo Pro和Delphi 2009 Professional的许可.我被要求支持另一个内部工具,由其他职业程序员编写,后来已经退休.这是一个Windows程序,但它是使用Delphi 6使用CLX库而不是VCL开发的.

从我收集的内容来看,CLX库是基于QT的,并且在Delphi 2006之前被删除.支持只包含一些错误修复和一些小调整,所以我宁愿不将代码移植到VCL,如果我可以避免它.

可以在Delphi 2006或2009中安装CLX支持吗?

delphi legacy-code

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

我可以将Caps Lock映射到对Delphi IDE有用的东西吗?

好的,所以我知道我可以在Windows注册表中重新映射Caps Lock键,但有什么用处可以将它映射到Delphi 2009 IDE吗?我希望代码完成(Ctrl-Space),有没有办法将单个Caps Lock键映射到Ctrl键组合?

ide delphi delphi-2009

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