升级到 Windows 7 后,除了这个版本之外,所有似乎都可以在我的 Delphi 2007 版本中运行。我知道 2007 不是为 win 7 构建的,但我不确定操作系统是否是原因。我的朋友正在使用它没有问题。当我使用“查找本地引用”时一切正常。
你知道解决这个问题吗?有些dll注册可能是?
在Delphi(2007)中,我习惯用CTRL-SHIFT-0,1,2等设置书签.
自从我升级到Vista x64后,上述功能不再适用.我仍然可以用CTRL-K-0,1,2等设置书签,但我习惯于传统的方式(加上它更快).
有谁知道为什么它不适合我?
我有:
德尔福2007
水晶11
Delphi 7版本的Crystal VCL组件(我知道的最新版本,它在D2007中编译得很好)
一个非常简单的测试Crystal报告,用Crystal 11编写,只是将一个表转储到屏幕上(没有选择标准,没有公式,只有直接数据)
我试过了
创建了一个新的VCL表单应用程序
删除表单上的TCrpe组件
将"ReportName"属性设置为我的测试报告.
我在表单上放了一个按钮,在它后面放了一行:
Crpe1.Execute
Run Code Online (Sandbox Code Playgroud)
如果报告有"保存数据随着报告"选项打开的,那么这个工作正常.
如果我把这个选项关闭,那么我就需要提供登录凭据.
使用此代码(在一百万年前的Delphi 5中运行良好):
procedure TForm1.BitBtn1Click(Sender: TObject);
var
logonItem: integer;
begin
Crpe1.LogOnServer.Clear;
logonItem := Crpe1.LogOnServer.Add('MYSERVER.MYDOMAIN.COM');
Crpe1.LogonServer[logonItem].UserID := 'USERNAME';
Crpe1.LogOnServer[logonItem].Password := 'PASSWORD';
Crpe1.LogOnServer[logonItem].DatabaseName := 'MYDATABASE';
Crpe1.Execute;
end;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
---------------------------
Project2
---------------------------
Error:536 Error in File C:\REPORT.RPT:
Unable to connect: incorrect log on parameters.
Execute <PEStartPrintJob>.
---------------------------
OK
---------------------------
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何在Delphi中为Crystal VCL组件提供登录凭据?我当前的解决方法非常难看,我有很多遗留代码要转换.如果我能以一种简单的方式使用VCL组件,那将是非常好的.
如果我搬到Delphi 2007到2010,我应该担心什么?
我查过这篇文章,有很多有趣的东西,但不是我需要的这种跳跃.
澄清我的问题和情况:
谢谢!
我们刚刚在Delphi 2007中遇到了TFileStream.Seek(实际上该方法继承自THandleStream)的一种特殊行为:
您可以在文件末尾搜索而不会出现错误,在搜索之后您甚至可以从文件中读取而不会出现错误.
代码基本上只调用Windows API函数SetFilePointer,似乎做了正确的错误处理.有人能解释一下这里发生了什么吗?
我试图声明一个常量数组来验证输入对象持有的类型属性.但我做错了,请看下面的代码:
// Record to hold Name-Value pair for checking entities
TValues = record
Name : WideString;
Value : Variant;
end;
const
coarrType1Properties : array[0..5] of TValues =
(
(Name : 'HARDWARE'; Value : TRUE),
(Name : 'SOFTWARE'; Value : TRUE),
(Name : 'TAG'; Value : TRUE),
(Name : 'AUTHORIZED'; Value : TRUE),
(Name : 'ID'; Value : 700),
(Name : 'CODE'; Value : 0)
);
Run Code Online (Sandbox Code Playgroud)
但我得到类型值的delphi编译时错误,即此类型无法初始化.如何防止此错误?或者我们可以有替代解决方案等.请协助......
我加载了一个糟糕的PAS/DFM文件(长篇故事),导致了一个GPF,之后IDE崩溃了.丢失了我的项目相关数据(打开文件列表等).
现在,当我启动IDE时,它始终处于"运行"模式.也就是说,即使没有程序正在运行,它也会显示断点,监视和局部变量.同样,除非我使用F11启动属性,否则属性不可见.我重复重启了IDE.有趣的是,它仍然可以编译和运行程序.
如何重置IDE以使其正常工作?
在我们的应用程序中,我们已经为我们所有的需求创建了几个Exceptions类.但现在的问题是,引发的异常对话框总是MessageType mtError,当然mtError还会显示-Icon.
对于我们的一些例外,我更喜欢不那么激进的 Icon/MessageType,例如MessageType mtInformation.
有没有办法直接在Exceptionclass中更改Icon而不会try...except在每次出现时再次提升和捕获它?
我尝试使一个新项目添加一个TEdit和一个TButton.将Edit1.Text设置为'This is a test message'.并在按钮上添加一个事件:
procedure TForm7.Button1Click(Sender: TObject);
begin
Edit1.SelStart := 5;
Edit1.SelLength := 5;
end;
Run Code Online (Sandbox Code Playgroud)
单击按钮时未选择任何内容.有人可以解释为什么以及如何选择文本的某些部分?
关心罗兰
我跟着Delphi Basic的一个例子.我复制了它,能够在我的Delphi 2007中运行得很好.
所以我构建了自己的程序并使用了上面提到的这种方法但是遇到了错误.错误声明"...引发异常类EConvertError with message"9.702827253E + 003'不是有效的浮点值".
抓我的头......
var
readResult2:WideString;
strSN:String;
strSN2:String;
floatSN:Extended;
Run Code Online (Sandbox Code Playgroud)
何时readResult2被读作'+ 9.702827253E + 003'#$ A,如手表所示,
strSN := readResult2;
Delete(strSN,1,1);
floatSN := StrToFloat(strSN); //This line created an error
freqSformat.Text := FloatToStr(floatSN);
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?我还是难过......
delphi ×10
delphi-2007 ×10
ide ×2
bookmarks ×1
crash ×1
delphi-2010 ×1
exception ×1
upgrade ×1
winapi ×1