小编Mar*_*ius的帖子

系统错误.代码:8.没有足够的存储空间来处理此命令

我们有一些Win32应用程序(在Delphi 2006中编码),有时用户会收到一条错误消息"系统错误.代码:8.没有足够的存储空间来处理此命令"..

从堆栈跟踪看起来它总是在CreateWnd调用期间

Main ($1edc):
004146cc +070 app.exe SysUtils               RaiseLastOSError
00414655 +005 app.exe SysUtils               RaiseLastOSError
004ce44c +130 app.exe Controls               TWinControl.CreateWnd
00535a72 +022 app.exe cxControls             TcxControl.CreateWnd
004ce82a +016 app.exe Controls               TWinControl.CreateHandle
00553d21 +005 app.exe cxContainer            TcxContainer.CreateHandle
00586ef1 +005 app.exe cxEdit                 TcxCustomEdit.CreateHandle
005c331d +005 app.exe cxDropDownEdit         TcxCustomDropDownEdit.CreateHandle
004ceaf0 +074 app.exe Controls               TWinControl.UpdateShowing
004ceb1e +0a2 app.exe Controls               TWinControl.UpdateShowing
004cebdc +03c app.exe Controls               TWinControl.UpdateControlState
004d118a +026 app.exe Controls               TWinControl.CMVisibleChanged
004cb713 +2bb app.exe Controls               TControl.WndProc
004cf569 +499 app.exe Controls               TWinControl.WndProc
004b727d +4c1 app.exe …
Run Code Online (Sandbox Code Playgroud)

delphi winapi

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

排序数组的最佳方法

假设我有一系列记录,我想根据记录中的一个字段进行排序.实现这一目标的最佳方法是什么?

TExample = record
  SortOrder : integer;
  SomethingElse : string;
end;

var SomeVar : array of TExample;
Run Code Online (Sandbox Code Playgroud)

arrays delphi sorting

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

SQL Query获取最新价格

我有一个表格,其中包含MS SQL 2005表格中许多不同"事物"的价格.每件事每天有数百条记录,不同的东西在不同的时间获得价格更新.

ID uniqueidentifier not null,
ThingID int NOT NULL,
PriceDateTime datetime NOT NULL,
Price decimal(18,4) NOT NULL
Run Code Online (Sandbox Code Playgroud)

我需要获得今天最新的一组价格.下面的查询有效但我收到了数百行,我必须循环它们,并且每个ThingID只提取最新的一行.我怎样才能(例如通过GROUP BY)说我想要每个ThingID最新的一个?或者我必须使用子查询?

SELECT * 
FROM Thing
WHERE ThingID IN (1,2,3,4,5,6)
  AND PriceDate > cast( convert(varchar(20), getdate(), 106) as DateTime) 
Run Code Online (Sandbox Code Playgroud)

更新:为了隐藏复杂性,我将ID列放在一个int中.在现实生活中它是GUID(而不是顺序类).我已经更新了上面的表def以使用uniqueidentifier.

sql sql-server sql-server-2005

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

Delphi PDF生成

我们使用快速报告来创建报告,但我们对其创建的PDF质量并不满意.我知道我们可以插入其他PDF组件而不是FastReports附带的组件,所以我的问题是

Delphi有哪些好的PDF组件(免费或商业版)?理想情况下,它不应该需要任何dll.

编辑:我最终购买了Gnostice,因为它有FastReports集成,可用来源和相当好的声誉.然而,我确实发现了一个问题(在我购买之后)将多页报告从FastReports导出到PDF,其中组件泄漏内存并破坏输出.我已经向Gnostice报告过了,所以我想我们会在未来几天看到他们的支持有多好......

编辑2: Gnostice带来了一个修正程序来纠正内存泄漏和损坏的输出.

pdf delphi pdf-generation fastreport

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

SQL Server合并复制计划

我们正在使用SQL Server 2005 Merge复制在伦敦和香港之间复制数据库.复制设置为每隔一分钟同步,它工作正常.但是,可以选择将同步设置为"连续".复制每一分钟和连续复制有什么区别吗?

我们每隔一分钟做一次而不是连续做的唯一原因是,如果线路停机几分钟它恢复得更好,但这种体验全部来自SQL Server 2000,所以它可能不再适用了.. .

sql-server replication merge

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

枚举Delphi中的运行进程

如何使用Delphi在我的机器上获取正在运行的进程列表(包含PID,所有者等的详细信息)?

编辑:所提出的解决方案都没有给我拥有该进程的用户,只有PID,ExeName等信息......

delphi winapi

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

Delphi MDI应用程序和MDI Children的标题栏

我有一个用Delphi 2006编写的MDI应用程序,它使用默认主题运行XP.

有没有办法控制MDI儿童的外观,以避免每个窗口上的大型XP风格标题栏?

我已经尝试设置BorderStyleMDIChildrenbsSizeToolWin,但他们仍然呈现正常的形态.

forms delphi mdi

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

选择包含数据的所有单元格

我在Excel工作表中有一些数据.我想选择包含数据的所有单元格.

例如,对于单元格A1,A2,A3,B1,B2,B3,C1,C2和C3中的数据的工作表,如何仅选择此3x3网格,而不是整个工作表?

我正在寻找类似的东西ActiveSheet.SelectUsedCells.

excel vba

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

从Delphi 2006中的WideString中删除空字符

我有一个包含一些数据的WideString变量,但是当字符串被分配了一些额外的空值时,在数据中或多或少的随机位置添加.我现在需要从变量中删除这些空值.如果它是一个字符串我会检查每个Char以查看Char(x)= 0但是因为这是一个WideString我不认为这个工作?我怎样才能最好地解决这些问题呢?

我正在使用Delphi 2006

delphi unicode

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

在Outlook Redemption中使用GetMessageFromMsgFile后清空EntryID

在Exchange 2007 SP3上使用RDO 4.8.0.1184和Delphi 2006

我有以下代码(缩写):

Msg := MailSession.GetMessageFromMsgFile(sTempFile, false);
Msg.UnRead := true;
Msg.Save;
Msg.Move(some_folder);
ShowMessage('EntryID: ' +Msg.EntryID);
Run Code Online (Sandbox Code Playgroud)

生成的对话框显示空的EntryID.我尝试在各个地方打印EntryID,但它总是一个空字符串.我究竟做错了什么?

delphi exchange-server outlook-redemption

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

带有Unicode主题的Indy消息

我需要创建一个带有Unicode主题的IdMessage(例如"本语 - 测试")

我尝试过使用它

Msg.Subject := UTF8Encode(subject);
Run Code Online (Sandbox Code Playgroud)

subject是包含上述文本的WideString但是当我查看编码主题时(通过将Message保存到文件),它看起来像这样:

Subject: =?UTF-8?Q?=C3=A6=C5=93=C2=AC=C3=A8=C2=AA=C5=BE?= - test
Run Code Online (Sandbox Code Playgroud)

代替

Subject: =?UTF-8?Q?=E6=0C=AC=E8=AA=9E?= - test
Run Code Online (Sandbox Code Playgroud)

和Outlook将其显示为"本語 - test"

关于我哪里出错的任何指示?

Delphi 2006(pre-unicode),Indy 10(最近来自源代码)

delphi unicode indy

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