我倾向于使用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) 我收到了一个我想要改编的实用程序的源代码,但似乎有.dfm文件以二进制格式存储,其中一个.dfm文件似乎是coRruPted.我也有编译的.exe文件.
有没有办法从.exe中提取表单?
我可以从相关的.pas文件中看到表单类型声明和表单上的组件.如何从头开始重新创建表单,并将其"附加"到原始.pas文件?
我目前正在处理'继承'代码,该代码具有(随机分散)一大堆基于Delphi版本的条件编译器指令,返回到Delphi 2.从现在开始,所有开发都将采用Delphi 2009或未来.Delphi 2009中是否有一个工具或插件,它会根据指定的"最小"版本自动删除编译器条件代码段?
我正在创建一个实用程序,它将以特定的二进制格式将数据存储在平面文件中.我希望文件扩展名特定于我的应用程序.是否有任何原因,除了旧的8.3文件名限制,将扩展名限制为3个字符,如果没有,限制是什么?我可以拥有myfilename.MyExtensionSoHandsOffEverybodyElse吗?
我使用Firefox作为我的Web浏览器,主要用于访问加载项,如Flashblock和No-script.我昨天注意到用于欢迎页面等的RAD Studio内部浏览器启用了脚本和Active X等.有没有办法禁用脚本,或者更好的是,阻止内置浏览器中对非本地源的所有访问?
在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 2007和Delphi XE.弹出代码洞察工具提示视图在XE安装中受到限制.我似乎记得这是在编辑器选项的某个地方,但找不到它.
有人可以告诉我在哪里打开扩展的工具提示视图?
见附图 - D2007在顶部,DXE在下面

我可以在[工具] [选项]编辑器选项/显示设置表单下更改RAD Studio 2009中的编辑器字体,但字体列表非常有限,并且不显示所有已安装的字体.有没有办法在选择中添加字体?
通过在[HKEY_CURRENT_USER\Software\CodeGear\BDS\6.0\Editor\Options]下的注册表中设置字体名称,可以解决此问题.
我有一个相对复杂的数据结构来建模.我想用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) 当Turbos问世时,我开始使用Delphi进行职业编程,并拥有Delphi 2006 Turbo Pro和Delphi 2009 Professional的许可.我被要求支持另一个内部工具,由其他职业程序员编写,后来已经退休.这是一个Windows程序,但它是使用Delphi 6使用CLX库而不是VCL开发的.
从我收集的内容来看,CLX库是基于QT的,并且在Delphi 2006之前被删除.支持只包含一些错误修复和一些小调整,所以我宁愿不将代码移植到VCL,如果我可以避免它.
可以在Delphi 2006或2009中安装CLX支持吗?
好的,所以我知道我可以在Windows注册表中重新映射Caps Lock键,但有什么用处可以将它映射到Delphi 2009 IDE吗?我希望代码完成(Ctrl-Space),有没有办法将单个Caps Lock键映射到Ctrl键组合?
delphi ×10
delphi-2009 ×4
records ×2
browser ×1
filesystems ×1
forms ×1
ide ×1
legacy-code ×1
oop ×1
range ×1
security ×1
tooltip ×1
tstringlist ×1
vcl ×1
windows ×1