标签: delphi-7

记录数组中的默认布尔值 - Delphi

我正在使用一些旧的delphi 7代码帮助我的公司.

在开始时声明了一条记录,用于存储我们想要输出的所有数据.

type
TOutput_Type = record
result:String;
resultoffset:String;
选中:布尔值;
resultcategory:整数;
结束;

然后声明一个数组

输出:TOutput_Type数组;

长度在开始时设置为较大的值,因为实际长度未知.
此数组在整个地方都使用,但不幸的是,使用时并不总是设置所选的值.
我的问题是我在添加数据摘要,但由于未设置选中,delphi似乎给它一个随机的真或假状态.
有没有办法在开始时将所有选中的实例设置为true?看起来像一个简单的事情,但我不是德尔福程序员所以不确定它是否可能?我知道我可以通过并在每次创建新记录时添加选择:= true,但如果可能的话,我想在开始时干净利落地进行....
提前感谢

arrays delphi boolean delphi-7

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

如何在Delphi7"View Unit"框架中查看更多项目?

我正在Delphi 7上开展一个项目,该项目最近包含56个单位,很快就会需要十几个单位.我经常使用View Unit框架(Ctrl + F12)在单元之间切换.但它有一个令人讨厌的缺陷 - 框架相当小,它只适合20个项目.我必须向上和向下滚动以选择我需要处理的单元.

使这么多单元更容易使用的解决方案是什么?我特别期待一个补丁或调整,以允许我使View Unit框架更高,但我想避免复杂和/或昂贵的插件.

提前致谢!

ide delphi delphi-7

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

图像相交

我如何知道我的两张图像何时交叉?

delphi image delphi-7 intersect

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

表格自动显示,我没有告诉他们?

现在,我在过去5年中创建了至少300多种手动创建的表单,我从未见过这个问题.我当然有一个主要形式,然后是一堆较小的儿童形式.这些子表单不是自动创建的,它们是在我的代码中手动声明和创建的.这个项目还为时尚早,这意味着在这个项目中没有那么多我可能会遗漏的东西.但问题是,我所做的只是创建表单,将父表单分配给主表单,并且没有任何代码来显示表单,它无论如何都会显示自己的表单.

FControlPanel:= TfrmControlPanel.Create(nil);
FControlPanel.Parent:= Self;
Run Code Online (Sandbox Code Playgroud)

这就是我创建它的所有代码.绝对没有代码在实际的子窗体中.至少它应该FControlPanel.Show是可见的,但出于某种原因,无论如何它都是可见的.

我确实有预感可能导致这种行为开始.但我不能把两个和两个放在一起.我尝试使用MDI表单功能,将表单保留在主表单中.但在经过多次试验/错误情景后,我放弃并重新设置了我的属性.我改变的唯一属性是FormStyle - 我在fsMDIForm,fsNormal和fsStayOnTop之间切换(用于试验)的主要形式.孩子表单我将它们切换到fsMDIChild.在我放弃之后,我将它们全部切换回默认值fsNormal.在这个"车展"开始发生之后,就是在这之后.

此外,可能是一个重要的注释,这些子表单继承自主表单.这个主表单实际上也没有代码,至少没有代码可以显示它.在我的任何代码中,我都没有告诉它显示这些子表单,但无论如何它都可以.我知道他们不会自动创作.

我能做错什么?

PS - 实现MDI的问题一般是另一个问题,我不是在询问MDI,但它可能是导致这种情况发生的原因,因为已知改变组件的属性会永久性地切换组件的内部属性,例如,在TPanel上,将"ParentBackground"切换为true,然后再次返回false,使其在使用XPMan时正确显示指定的颜色.

delphi mdi delphi-7 tform

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

delphi中的TOleServer ...等效的.NET类?

我有一些delphi代码,我需要迁移/ port /重写到.NET

该代码使用TOleServer.能告诉我这个特定类的任何.NET等效实现吗?

它是否可以通过非托管代码获得?

谢谢

delphi delphi-7 delphi-2010

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

在delphi中使用两个exe文件时相对路径和绝对路径之间的冲突

我有一个exe在C:\ MyProject文件夹中说myApp.exe.它将日志写入logfile,如tracefile.log,它也存在于C:\ MyProject中.

现在我必须创建一个计划任务说Schedule1.exe,它也将写入位于C:\ MyProject的logfile tracefile.log中.

好吧,我创建了Schedule1.exe并将其保存在相同的文件夹C:\ MyProject文件夹中,并使用此exe创建了计划.

问题:当我将日志文件的相对路径设为".\ tracefile.log"时,Schedule1.exe无法选择日志文件的路径.但是当我提供像"C:\ MyProject"这样的完整路径时,它会选择日志文件路径并在其上写入.

请提出可能是什么问题?

delphi delphi-7 delphi-xe2

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

Delphi - 如何检查方法变量?

在Delphi中(我使用的是D7),如何检查方法变量是否已分配给某些东西?我试过这段代码

function MethodIsOK(M : TMethod) : Boolean;
begin
  //Result := M <> Nil;
  //Result := Assigned(M);
end;
Run Code Online (Sandbox Code Playgroud)

但无论哪种分配方式Result都会产生"不兼容类型"编译错误

delphi delphi-7

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

如何在Delphi 7中将一个接口转换为另一个接口?

我遇到了以下问题:

我有一个类,它是使用Delphi 7 XML Data绑定向导(New - > Other - > XML Databindng)从xsd文件生成的.

我需要找到一种方法来为生成的代码添加方法:

IXMLGlobeSettingsType = interface(IXMLNode)
    ['{9A8F5C55-F593-4C70-85D2-68FB97ABA467}']
    { Property Accessors }
    function Get_General: IXMLGeneralSettingsType;
    function Get_Projector: IXMLProjectorSettingsType;
    function Get_LineMode: IXMLLineDrawingSettingsType;

    { Methods & Properties }
    property General: IXMLGeneralSettingsType read Get_General;
    property Projector: IXMLProjectorSettingsType read Get_Projector;
    property LineMode: IXMLLineDrawingSettingsType read Get_LineMode;

    //procedure SetDefault;   {To be added}
  end;
Run Code Online (Sandbox Code Playgroud)

该接口由相应的类实现,该类也由向导生成:

TXMLGlobeSettingsType = class(TXMLNode, IXMLGlobeSettingsType)
  protected
    { IXMLGlobeSettingsType }
    function Get_General: IXMLGeneralSettingsType;
    function Get_Projector: IXMLProjectorSettingsType;
    function Get_LineMode: IXMLLineDrawingSettingsType;
  public
    procedure AfterConstruction; override;
  end;
Run Code Online (Sandbox Code Playgroud)

为了定义我自己对生成的代码的扩展,我定义了以下接口: …

delphi delphi-7

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

在运行时确定弹出提示消息(THintInfo :: HintStr)的大小

我们ShowHint启用了TListView .在OnInfoTip处理程序中,构造一个特定于鼠标悬停在其上的项目的提示消息.该消息可能包括换行符(#13#10).

已创建覆盖以处理CM_HINTSHOW消息,并且可以看到要显示的提示消息msg.HintInfo.HintStr.有可能在运行时计算大小,但这似乎有风险,因为实现细节可能很复杂或与平台有关.

可以THintInfo查询其边界矩形还是有另一种方法来确定弹出提示消息显示时的确切大小?

这是必需的,因此msg.HintInfo.HintPos可以设置提示()的确切位置.

windows delphi delphi-7

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

从Delphi启动Windows Optimize应用程序(Windows 10)

我们有一个传统的Delphi 7应用程序,它启动Windows Defrag和屏幕键盘应用程序,如下所示:

// Defragmentation application
ShellExecute(0, 'open', PChar('C:\Windows\System32\dfrg.msc'), nil, nil, SW_SHOWNORMAL);

// On-screen keyboard
ShellExecute(0, 'open', PChar('C:\Windows\System32\osk.exe'), nil, nil, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

两者都适用于Windows XP但在Windows 10上失败.我发现碎片整理应用程序已更改名称dfrgui.exe,但更新代码无济于事.仍然osk.exe在Windows 10上调用屏幕键盘.

这两个应用程序都可以从命令行手动/直接启动,也可以在Windows资源管理器中双击它们.

我怀疑是Windows安全是防止我的应用程序发动的任何东西C:\Windows\System32,因为我可以从启动其他几个应用程序Program FilesC:\Windows.

有人可以帮忙吗?

windows delphi delphi-7

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

标签 统计

delphi ×10

delphi-7 ×10

windows ×2

arrays ×1

boolean ×1

delphi-2010 ×1

delphi-xe2 ×1

ide ×1

image ×1

intersect ×1

mdi ×1

tform ×1