小编Ari*_*The的帖子

delphi prism(.net)编译器

当我尝试在delphi prism中编译我的应用程序时,我遇到了这些错误

C:\ Users\Burak\Documents\Visual Studio 2008\Projects\Project1\WindowsApplication1\WindowsApplication1\Main.pas(6,3):错误:(PE17)命名空间"Windows"不存在或没有公共类型C:\ Users\Burak\Documents\Visual Studio 2008\Projects\Project1\WindowsApplication1\WindowsApplication1\Main.pas(7,3):错误:(PE17)命名空间"Tlhelp32"不存在或没有公共类型

我做错了吗?

使用Windows,Tlhelp32,System.Drawing,System.Collections,System.Collections.Generic,System.Linq,System.Windows.Forms,System.Windows,System.ComponentModel;

我使用2009 delphi prism,小答案可以解决我的问题(我认为我的问题是愚蠢的,但我不能使用CreateRemoteThread,而WriteProcessMemory没有它).

最诚挚的问候,Burak TAMTURK

.net delphi oxygene delphi-prism

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

如何在TDbGrid中获取光标下的文本

屏幕宽度不足以显示一些文本字段.我不知道如何自动包装它们,我怀疑它可以很容易地完成.

所以,我以为我会做类似的事情

procedure TForm1.FormMouseMove(Sender: TObject;
    Shift: TShiftState; X,Y: Integer);

   var column, row : Integer;
begin
  myDbGrid.MouseToCell(X, Y, column, row);
  myDbGrid.Hinst := myDbGrid.Cells(column, row); // <==== ooops
end;
Run Code Online (Sandbox Code Playgroud)

或者,也许这样做OnShowHint并获得鼠标坐标并将它们转换为列和行(更高效)

但是,当然,TDbGrid没有Cells.知道如何在用户将鼠标移动到网格的"单元格"上时如何设置控件的提示?

delphi mouseover tdbgrid

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

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

Delphi中编译时设置数据库连接断开的方法

是否有方法或编译器指令或某种方式来确保某些组件(例如查询或数据库连接)在运行构建/编译时设置为 active=false 或断开连接?这些似乎经常被其他东西打开,直到为时已晚你才注意到它。

我的特定安装是 Delphi 7

delphi vcl database-connection delphi-7

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

截取特定区域的屏幕截图

我正在使用Lazarus,我在表单中有一个TImage.黑色表是a TImage,数字是labels.我需要截取我绘制的红色区域的截图.

在此输入图像描述

我怎么能这样做?

我有Lazarus 1.0.14,我没有找到任何关于此的例子.有什么建议吗?

delphi screenshot lazarus fpc

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

清除创建的对象内存

我正在使用WMI SMBios获取一些硬件信息

检查uSMBios.pas

我不想让用户看到内存中使用的序列号是什么,所以我试图清除它

我打电话的时候

SMBios:=TSMBios.Create;
//my code
SMBios.free;
Run Code Online (Sandbox Code Playgroud)

SMBios对象仍在许多位置的内存中 WinHex中

我试过这个代码 Destroy Event

    if Assigned(FRawSMBIOSData.SMBIOSTableData) then
    begin
      ZeroMemory(FRawSMBIOSData.SMBIOSTableData,FRawSMBIOSData.Length);
      FreeMem(FRawSMBIOSData.SMBIOSTableData);
    end;
Run Code Online (Sandbox Code Playgroud)

GetSystemFirmwareTable在SMBios中使用API代码很好,但在WMI中它删除了一些内存,但我仍然可以找到几个块

想知道为什么在调用object.free或freeandnil后未使用的内存未被释放

任何想法如何强制应用程序释放它?

delphi security wmi

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

Delphi:声明变量避免循环引用

我有一个Delphi单元需要保留各种形式的应用程序的指针,以便稍后对它们进行操作.

为了执行这些操作,我需要将指针强制转换为表单类型,例如.

var    
  ptrFrmMain: Pointer;
  CurrentFrmMain: TfrmMain;
begin
    CurrentFrmMain := ptrFrmMain;
    CurrentFrmMain.Close();
end;
Run Code Online (Sandbox Code Playgroud)

问题是该单元包含在应用程序的所有其他Delphi单元的使用中.因此,虽然我可以Pointer在接口部分声明一个简单类型,但我不能声明在其他单元(例如TfrmMain单元frmMain.pas)中声明的类型.

我可以通过在实现部分中使用来解决这个问题,例如:

interface
type TMyThread = class(TThread)
  Public
    ptrFrmMain:Pointer
...

implementation
    uses frmMain

    var
      CurrentFrmMain: TfrmMain;
Run Code Online (Sandbox Code Playgroud)

但是仍然存在一个问题:我需要将变量特定于我的类实例,用于多线程目的,而不是通用的全局变量.但我不能把它放在我的TmyThread班级里面,因为TfrmMain没有在那里声明,我不能把它放在接口部分的使用中.

一个解决方案是CurrentFrmMain在所有使用它的过程中作为局部变量放置,然后CurrentFrmMain := ptrFrmMain每次都进行转换,但是你知道更好的解决方案吗?

非常感谢你提前.

delphi circular-reference

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

如何使用分组依据并选择不同的

我正在使用Firebird数据库,但是使用大多数其他数据库引擎的SQL语法进行的回答也是可以接受的。

我有两个表:

WORKER
workerid: integer
worker names and so ot.

LOGEVENT
logeventid: integer
logday: integer
workerid: integer
Run Code Online (Sandbox Code Playgroud)

因此,LOGEVENT表用于跟踪工作人员登录。为了简单起见,我将logday用作代表登录日的整数。例如,可能是一年中的1到365。

因此,典型的日志表可能如下所示:

logeventid   logday     workerid
1            5          3
2            5          4
3            5          3
4            5          7
5            6          4
6            6          3
7            6          4
Run Code Online (Sandbox Code Playgroud)

如图所示,id = 3的工作人员在第5天进行了两次登录。

现在,我需要创建一个SQL查询,每天产生总数为“唯一”的登录(同一工作人员在同一天的几次登录应计为一个事件)。

以下查询:

select  count(logeventid) as logincount, logday from logevent
group by logday
order by logday
Run Code Online (Sandbox Code Playgroud)

第5天将显示logincount = 4。因为它两次计数了id = 3的工人。虽然我必须只计算不同的工作人员登录。因此,我需要一个查询,在第5天仅产生3次登录。

sql firebird

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

Delphi - > Delphi prism,如何使用数组记录?

我正在学习Delphi Prism,我没有找到如何用它编写以下代码:

type
  TRapportItem = record
   Label : String;
   Value : Int16;
   AnomalieComment : String;
  end;

type 
  TRapportCategorie = record
    Label : String;
    CategoriesItems : Array of TRapportItem;
  end;

type 
  TRapportContent = record
    Categories : array of TRapportCategorie;
  end;
Run Code Online (Sandbox Code Playgroud)

然后,在某个地方,我尝试将项目放在数组中:

rapport.Categories[i].Label:=l.Item(i).InnerText;
Run Code Online (Sandbox Code Playgroud)

但它不起作用.有人可以点燃我吗?

谢谢!

arrays delphi record oxygene delphi-prism

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

Delphi直方图组件?

在Delphi中没有人需要直方图吗?

谷歌给了我一堆半生不熟的代码片段.但这意味着每次你需要一个 - 你必须发明一个特别的bycicle.

Torry主要告诉我一些非常昂贵的闭源数学统计或金融包,作为副产品有直方图.但它们非常昂贵,而且由于你没有源代码,每次你在IDE/RTL/VCL上安装更新时,你可能会被搞砸,直到供应商制作(很快就会?)更新的软件包.鉴于那个存在仍然存在.

没有告诉我什么,没有.

对于我发现的...... Mitov.com在PlotLab中提供了一些直方图.被告知是免费的非商业性的.唉,它再次是闭源的,如果直方图 - 非常喜欢让我们承认 - 这是我需要的唯一东西 - 为什么要支付全部价格?

还有一个例子http://DSpatial.sf.net 就在几年前我在Delphi 5中使用它,但即便如此,我觉得作者对该项目失去了兴趣.我做了一些改进,修复了一些错误,他合并了它们,就是这样.该组件不是很有用,缺乏功能,但总比没有好.现在该项目似乎完全死了.美好的往日,等等.但我不希望他们回来:-)

Stack Overflow似乎没有任何关于它的问题.但也许只是没有人打扰创建话题,搜索后什么都没发现?我的意思是,Delphi是为数据库访问而创建的,直方图是可视化数据的基本方法之一,没有人穿过它们?一些风格不错的东西,在http://www.moskva.fm/stations/FM_95.2上有HTML/CSS/JS等丰富的鼠标工具提示?

或者这是否与域相关,并且永远不可能有良好的抽象?

delphi histogram

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