我有一个用Delphi 2010制作的软件,它需要在两个不同的部门中使用,它们共享相同的数据和相同的UI,除了隐藏/添加按钮,表单和网格列之类的一些更改.因此,需要具有相同应用程序的两个版本.
在应用程序启动时无法提示用户选择我必须使用单独的EXE的部门.
在Delphi 2010或XE3(将在以后升级)中执行此操作的最佳方法(概念)是什么?是否可以使用不同的exe名称进行编译?
Internet Explorer中FireFox firebug的等效调试工具是什么?
谢谢
编辑:这个工具是什么?

我的数据库计算需要在更新触发器后更新"table1"的"field1".
更新该字段的问题将导致更新后触发器触发并执行冗长的过程并显示错误.
请告知如何在执行"更新后"触发器之后更新"field1",而不再使"更新后"触发器再次执行.
我知道我不能使用NEW和After触发器.
谢谢
我有这个代码基于列数据着色网格行(网格来自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和FastReport我在此行之后立即调试Delphi时收到此错误消息:
<FastReport_Component>.ShowReport(true);
Run Code Online (Sandbox Code Playgroud)
然后出现此错误:
项目myapp.exe引发异常类EVariantTypeCastError,消息'无法将类型(String)的变体转换为类型(Double)'.
在显示报告之前它会出现两次.但是,如果我在没有调试的情况下运行myapp,则不会显示错
我如何找到导致此错误的备忘录?报告有这么多备忘录.有些还有使用中的表达式IIF,错误消息不再显示任何信息.
我需要While...Do在这样的存储过程中跳过循环迭代
While (v_counter <= :v_total) do begin
If (<condition>) then continue;
...
end
Run Code Online (Sandbox Code Playgroud)
但是CONTINUE在Firebird 3.0之前不可用.那么有一轮工作吗?
我有这张桌子
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日”时才能得到结果!为什么会这样以及我应该如何解决?
我有这个代码
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值的元素.
还请告知我是否应该手动释放此阵列
谢谢
我需要在调试我的Delphi应用程序时获取许多数据库字段的外键值,以便在调试存储过程行为时使用它们.字段是如此之多,所以我想知道是否有更快的方法来获取这些值,如将所有这些值填充到监视窗口而不是为我需要观察的每个字段编写表达式.
换句话说,我需要查看几个表的所有字段值.我不需要所有这些,但我可以从这样的列表中轻松选择我需要的东西.
目前我正在编写这样的手表表达式:
<data module>.<Table Component>.fieldbyname('Field_Name').asinteger
Run Code Online (Sandbox Code Playgroud) 我使用Delphi 10,当我创建默认的vcl应用程序并运行应用程序时,我有两个显示器,主窗体总是出现在第一个监视器中,有没有办法让它出现在默认的第二个监视器中?
这可能是IDE或属性或代码中的选项
谢谢
delphi ×6
firebird ×3
sql ×3
debugging ×2
arrays ×1
delphi-2010 ×1
delphi-ide ×1
delphi-xe3 ×1
fastreport ×1
triggers ×1