我需要将一个包中定义的大量Delphi组件更改为另一个包中的类似组件.可以通过替换DFM文件中的文本(组件类型和属性)来完成大部分繁琐的工作 - 当然保存为文本.
我搜索了Stackoverflow和Google,现在正在调整来自http://www.felix-colibri.com/papers/colibri_utilities/dfm_parser/dfm_parser.html的Felix Colibri DFM解析器.
我遇到了解析器窒息的DFM文件中的"特性":类型规范之后的[number] s:
inherited DialoogEditAgenda: TDialoogEditAgenda
ActiveControl = PlanCalendar
Caption = 'Agenda'
[snip]
inherited PanelButtons: TRzPanel
Top = 537
[snip]
inherited ButtonCancel: TRzBitBtn [0] <== *here*
Left = 852
[snip]
end
object CheckBoxBeschikbaarheid: TRzCheckBox [1] <== *here*
Left = 8
[snip]
end
inherited ButtonOK: TRzBitBtn [2] <== *here*
Left = 900
[snip]
end
end
inherited PageControl: TRzPageControl
Left = 444
[snip]
end
object PanelBeschikbaarheid: TRzSizePanel [2] <== *here*
Left = 967
[snip] …Run Code Online (Sandbox Code Playgroud) 我需要在我的上添加一个新路径(sumatraPDF)PATH variable.
我不知道为什么它不起作用......
我认为一切都是正确的但是当我尝试sumatrapdf.exe从CMD 执行时它无法找到程序.
这就是我做的:

路径是正确的,我检查了1000次.
这个想法是使用LaTeX和sublimetext,当我保存.text文件时,sumatra必须打开并向我显示结果.如果我想要我必须添加SumatraPDF的路径...但它不起作用.
下面的代码无法启动文档.我收到错误193(%1不是有效的Win32应用程序).启动可执行文件工作正常.文件已正确关联,双击时会启动相应的应用程序.我在SO和其他地方搜索过错误消息,createprocess stuff等等.(例如,为什么CreateProcess在Windows Server 2003 64位中失败? 我知道引用命令行.
这是Win7 64位VMWare VM中的Delphi XE2(Update 4)Win32应用程序.
代码也在主机(Win7 64位)和具有32位XP的Virtual PC VM中失败.
应该在Win7 VM(Excel 2003和Crimson Editor)中启动的应用程序是32位.
从IDE启动或独立运行测试应用程序时都会发生故障
它曾经是Delphi2007代码,这个代码来自的编译D2007应用程序无处不在.
代码有什么问题?这几乎就像我忽略了一些非常明显的东西......
提前致谢,
一月
procedure StartProcess(WorkDir, Filename: string; Arguments : string = '');
var
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
lCmd : string;
lOK : Boolean;
LastErrorCode: Integer;
begin
FillChar( StartupInfo, SizeOf( TStartupInfo ), 0 );
StartupInfo.cb := SizeOf( TStartupInfo );
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := sw_Normal;
FillChar( ProcessInfo, SizeOf( TProcessInformation ), 0 );
lCmd := '"' + WorkDir …Run Code Online (Sandbox Code Playgroud) 如果服务器端:我们如何连接数据库?
我在客户端使用它,但它也可以用于服务器端吗?
如果它不能用于服务器端我应该使用php或nodejs(我需要设计一个具有巨大数据带宽的网站)?
我正在使用Delphi 2010和superobject库.
我已经了解如何解析json文件,但我不知道如何创建json?
算法是:
需要一些例子.
谢谢.
我的一位同事撞到了一个突然"改变价值"的常数;
原来,它被重新宣布:
unit Unit1;
interface
const
MyConstant = 1;
implementation
end.
Run Code Online (Sandbox Code Playgroud)
-
unit Unit2;
interface
const
MyConstant = 2;
implementation
end.
Run Code Online (Sandbox Code Playgroud)
-
Uses Unit1, Unit2;
// Uses Unit2, Unit1;
procedure TFrmRedefineConstant.FormShow(Sender: TObject);
begin
ShowMessage('MyConstant: ' + IntToStr(MyConstant));
end;
Run Code Online (Sandbox Code Playgroud)
这表明2.如果您在Uses语句中交换单位订单,则会显示1.
很好,但为什么Delphi编译器没有警告重复的常量名称(这会非常有帮助)?
我能做些什么来启用警告(看起来不那么).
我曾经认为外键和二键是一回事.
在Google搜索之后,结果更加令人困惑,有些人认为它们是相同的,其他人则认为辅助键是一个不必是唯一的索引,并且允许比使用主键更快地访问数据.
有人可以解释这个区别吗?
或者它确实是混合术语的情况?
每个数据库类型可能有所不同吗?
是否可以使用select的结果作为字符串与其他select中的列名中的另一个字符串连接?
例:
SELECT brand
FROM articles a
WHERE a.id='12345678'
Run Code Online (Sandbox Code Playgroud)
结果: BRAND_A
我现在想要连接_PRICE到BRAND_A......
SELECT (
SELECT brand
FROM articles a
WHERE a.id = '12345678'
) + "_PRICE"
FROM prices p
WHERE p.id = '12345678'
Run Code Online (Sandbox Code Playgroud)
...实际检索:
SELECT BRAND_A_PRICE
FROM prices p
WHERE p.id = '12345678'
Run Code Online (Sandbox Code Playgroud) 我有几个这样的硬编码验证:
const
cLstAct = 1;
cLstOrg = 4;
cLstClockAct = 11;
const
FUNCT_1 = 224;
FUNCT_2 = 127;
FUNCT_3 = 3;
if lFuncID in [FUNCT_1,FUNCT_2,FUNCT_3] then ...
if not (lListType in [cLstAct..cLstOrg,cLstClockAct]) then ...
if not (lPurpose in [0..2]) then ...
Run Code Online (Sandbox Code Playgroud)
我想用一个常见的方法替换
function ValidateInSet(AIntValue: integer; AIntSet: @@@): Boolean;
begin
Result := (AIntValue in AIntSet);
if not Result then ...
end;
Run Code Online (Sandbox Code Playgroud)
但是选择什么类型AIntSet?
目前,整个代码中要测试的值达到const值232(因此我可以使用TByteSet = Set of Byte),但我可以预见到E1012 Constant expression violates subrange bounds当常量值超过255时我们将碰到.
我的Google-fu在这里让我失望......
(目前在Delphi Seattle Update 1上)
出于兼容性原因(对象被序列化并导出并且必须与外部名称匹配)我希望字段名称为'type',即
TTBaseWebResponse = class
private
type: String;
success: Integer;
end;
or
TTBaseWebResponse = class
private
ftype: String;
fsuccess: Integer;
public
type: string read fstring write fstring;
success: integer read fsuccess write fsuccess;
end;
Run Code Online (Sandbox Code Playgroud)
Delphi(XE2)甚至不会编译它.这是可能吗?怎么样?
delphi ×6
sql ×2
angularjs ×1
constants ×1
delphi-2007 ×1
delphi-xe2 ×1
dfm ×1
json ×1
node.js ×1
path ×1
php ×1
rename ×1
sql-server ×1
superobject ×1
types ×1
winapi ×1
windows ×1