小编Jan*_*gen的帖子

德尔福DFM文件中的奇怪[数字] - 起源和必要性?

我需要将一个包中定义的大量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)

delphi rename dfm

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

Windows 7 - 添加路径

我需要在我的上添加一个新路径(sumatraPDF)PATH variable.
我不知道为什么它不起作用......
我认为一切都是正确的但是当我尝试sumatrapdf.exe从CMD 执行时它无法找到程序.

这就是我做的: 在此输入图像描述

路径是正确的,我检查了1000次.

这个想法是使用LaTeX和sublimetext,当我保存.text文件时,sumatra必须打开并向我显示结果.如果我想要我必须添加SumatraPDF的路径...但它不起作用.

path windows-7-x64

29
推荐指数
2
解决办法
12万
查看次数

为什么CreateProcess提供错误193(%1不是有效的Win32应用程序)

下面的代码无法启动文档.我收到错误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)

windows delphi winapi delphi-2007 delphi-xe2

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

是Angularjs Clientside还是Serverside或两者

如果服务器端:我们如何连接数据库?

我在客户端使用它,但它也可以用于服务器端吗?

如果它不能用于服务器端我应该使用php或nodejs(我需要设计一个具有巨大数据带宽的网站)?

php node.js angularjs

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

如何使用SuperObject lib在Delphi中创建JSON文件?

我正在使用Delphi 2010和superobject库.

我已经了解如何解析json文件,但我不知道如何创建json?

算法是:

  1. 解析JSON并在TStringGrid中加载
  2. 添加数据
  3. 将所有TStringGrid数据保存到json.

需要一些例子.

谢谢.

delphi json superobject

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

为什么Delphi编译器没有警告重新定义的常量?

我的一位同事撞到了一个突然"改变价值"的常数;
原来,它被重新宣布:

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编译器没有警告重复的常量名称(这会非常有帮助)?
我能做些什么来启用警告(看起来不那么).

delphi constants

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

外键与辅助键

我曾经认为外键和二键是一回事.

在Google搜索之后,结果更加令人困惑,有些人认为它们是相同的,其他人则认为辅助键是一个不必是唯一的索引,并且允许比使用主键更快地访问数据.

有人可以解释这个区别吗?
或者它确实是混合术语的情况?
每个数据库类型可能有所不同吗?

sql

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

在其他SELECT中使用SELECT结果作为COLUMN名称

是否可以使用select的结果作为字符串与其他select中的列名中的另一个字符串连接?

例:

SELECT brand 
FROM articles a 
WHERE a.id='12345678'
Run Code Online (Sandbox Code Playgroud)

结果: BRAND_A

我现在想要连接_PRICEBRAND_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)

sql sql-server sql-server-2012

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

什么Delphi类型为'整数集'?

我有几个这样的硬编码验证:

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上)

delphi types

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

是否可以将保留字用于字段名称?

出于兼容性原因(对象被序列化并导出并且必须与外部名称匹配)我希望字段名称为'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

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