小编Wel*_*Wel的帖子

同一应用程序的两个不同版本

我有一个用Delphi 2010制作的软件,它需要在两个不同的部门中使用,它们共享相同的数据和相同的UI,除了隐藏/添加按钮,表单和网格列之类的一些更改.因此,需要具有相同应用程序的两个版本.

在应用程序启动时无法提示用户选择我必须使用单独的EXE的部门.

在Delphi 2010或XE3(将在以后升级)中执行此操作的最佳方法(概念)是什么?是否可以使用不同的exe名称进行编译?

delphi delphi-2010 delphi-ide delphi-xe3

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

相当于IE中的firebug

Internet Explorer中FireFox firebug的等效调试工具是什么?

谢谢

编辑:这个工具是什么?

替代文字

debugging internet-explorer

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

firebird - 插入或更新触发器后

我的数据库计算需要在更新触发器后更新"table1"的"field1".

更新该字段的问题将导致更新后触发器触发并执行冗长的过程并显示错误.

请告知如何在执行"更新后"触发器之后更新"field1",而不再使"更新后"触发器再次执行.

我知道我不能使用NEW和After触发器.

谢谢

sql firebird triggers stored-procedures

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

Delphi'无法将类型(UnicodeString)的变体转换为类型(布尔值)

我有这个代码基于列数据着色网格行(网格来自devexpress)

var
AColumn: TcxCustomGridTableItem;
gs: variant;
begin

  AColumn := (Sender as TcxGridDBTableView).GetColumnByFieldName('COLOR');

  gs := ARecord.Values[AColumn.Index];

  if VarType(gs) and VarTypeMask = varString or varUString then
    AStyle.Color := gs; //<<<----- exception
Run Code Online (Sandbox Code Playgroud)

字段color是varchar(firebird)包含像cllime,clred等的值......但是我在错误注释的行中得到错误'无法将类型的变体(UnicodeString)转换为类型(布尔)'.我应该改变什么?

谢谢

delphi

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

带有消息的EVariantTypeCastError类'无法将类型(String)的变量转换为类型(Double)

使用Delphi和FastReport我在此行之后立即调试Delphi时收到此错误消息:

<FastReport_Component>.ShowReport(true);
Run Code Online (Sandbox Code Playgroud)

然后出现此错误:

项目myapp.exe引发异常类EVariantTypeCastError,消息'无法将类型(String)的变体转换为类型(Double)'.

在显示报告之前它会出现两次.但是,如果我在没有调试的情况下运行myapp,则不会显示错

我如何找到导致此错误的备忘录?报告有这么多备忘录.有些还有使用中的表达式IIF,错误消息不再显示任何信息.

delphi fastreport

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

使用Firebird 2.5跳过循环

我需要While...Do在这样的存储过程中跳过循环迭代

While (v_counter <= :v_total) do begin

  If (<condition>) then continue;

  ...

end
Run Code Online (Sandbox Code Playgroud)

但是CONTINUE在Firebird 3.0之前不可用.那么有一轮工作吗?

sql firebird

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

选择的日期范围

我有这张桌子

CREATE TABLE Table1 (
    MY_ID  INTEGER NOT NULL,
    SCAN_TIME    TIMESTAMP NOT NULL,
    WORKCELL_ID  SMALLINT
);
Run Code Online (Sandbox Code Playgroud)

当我使用 select SQL 获取两个日期之间的记录时,如果用户为两个日期选择相同的日期,我会得到空结果

例如:

Select * from Table1 
where SCAN_TIME between '20.9.2014' and '20.9.2014'
Run Code Online (Sandbox Code Playgroud)

虽然该日期“2014年9月20日”有记录,但我得到空结果,并且只有当我将第二个日期增加一天为“2014年9月21日”时才能得到结果!为什么会这样以及我应该如何解决?

sql firebird

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

Delphi - 在TArray <string>中检查元素是否存在两次

我有这个代码

var
arr: TArray<string>;
e1, e2, e3, e4: string;
begin

e1 := 'val1';
e2 := 'val2';
e3 := 'val3';
e4 := 'val4';

arr := TArray<string>.Create(e1, e2, e3, e4);
Run Code Online (Sandbox Code Playgroud)

我现在需要检查上面的数组中是否存在e1到e4 两次,最好的方法是什么?我还应该跳过检查任何具有null值的元素.

还请告知我是否应该手动释放此阵列

谢谢

arrays delphi

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

填充监视窗口中的所有字段值

我需要在调试我的Delphi应用程序时获取许多数据库字段的外键值,以便在调试存储过程行为时使用它们.字段是如此之多,所以我想知道是否有更快的方法来获取这些值,如将所有这些值填充到监视窗口而不是为我需要观察的每个字段编写表达式.

换句话说,我需要查看几个表的所有字段值.我不需要所有这些,但我可以从这样的列表中轻松选择我需要的东西.

目前我正在编写这样的手表表达式:

<data module>.<Table Component>.fieldbyname('Field_Name').asinteger
Run Code Online (Sandbox Code Playgroud)

delphi debugging

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

如何使主表单出现在第二个监视器中

我使用Delphi 10,当我创建默认的vcl应用程序并运行应用程序时,我有两个显示器,主窗体总是出现在第一个监视器中,有没有办法让它出现在默认的第二个监视器中?

这可能是IDE或属性或代码中的选项

谢谢

delphi

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