我在Windows 7上使用Delphi 7和QuickReports.通常,QuickReports需要查询生成的DataSet,但我想从StringGrid的内容生成报告,就像StringGrid是查询结果的表示一样.
怎么样?
我通过CreateProcess()执行exe文件,并通过SetForegroundWindow()设置前台进程.但它在Win7中不起作用,所以我必须单击任务栏中的图标.
如何实现我想要的行为(即Launch和BringToForeground)?
我有一个接受2个字符串参数的过程,其中一个具有默认值.在程序中,我想连接一个和另一个以及一些文字以形成一个更大的字符串.不知怎的,我正在收到一个AV ...任何想法?
代码是这样的
{$WRITEABLECONST ON}
constructor MyClass.Create(s1: string; s2: string = GlobalConstant);
var s3: string;
begin
....
if (s2 = '') then s2 := GlobalConstant + ' (' + s1 + ')'; // AV here
....
end;
Run Code Online (Sandbox Code Playgroud)
如果我给你GlobalConstant + ' (' + s1 + ')来s3,然后分配s3到s2的AV消失.为什么?直接写入字符串参数有什么问题?
在阅读有关如何创建服务应用程序的一些材料(如此)时,为每个服务请求生成一个单独的工作线程(因为我的服务请求可能需要冗长的数据库操作),所以我遇到了对TThread等的引用对TServiceThread的引用.现在我很困惑.我应该使用哪一个?为什么?如果你想要超级有用,并希望分享你的专业知识,如何或者你知道一个非常好的链接(强调该链接另一边的内容质量)那么这将有助于解决这个提问者的情况.不管怎么说,还是要谢谢你.
我有一个Modal发送请求的表单(使用idTCpClient).然后在idTCPServer OnExecute事件中,应该关闭该表单(在接收数据之后).
第一个ShowModal;并按Close;预期执行,但第二个close;不起作用,表单仍然可见.
我btnClose在表单上放了一个Button()来关闭它.如果我btnClose.Click;在idTCPServer OnExecute事件中使用,表单不会关闭,但如果我手动点击此按钮,表单将被关闭!
我执行这个:
Procedure btnStart();
begin
Form1.ShowModal;
end;
Run Code Online (Sandbox Code Playgroud)
idTCPServer将执行此操作:
procedure idTCPServerOnExecute(...)
begin
Form1.close //Or for testing purpose: Form1.btnClose.Click;
end;
Run Code Online (Sandbox Code Playgroud) delphi ×5
constants ×1
delphi-2007 ×1
focus ×1
quickreports ×1
service ×1
string ×1
windows-7 ×1