小编ThN*_*ThN的帖子

无效的指针操作 - Delphi XE

我似乎无法想出这个.我的程序编译并成功运行,但在调试期间,只有在关闭程序时会弹出一个消息框,显示"无效的指针操作".我已经仔细检查了所有FormCloseQuery和FormDestory事件是否存在任何语法或逻辑错误.我发现没有,他们按预期执行没有任何错误.

在此输入图像描述

当我告诉编译器在无效指针操作错误中断时,它没有做任何事情,只是挂起程序.此时,我不得不终止或终止该过程.

你是怎么想出来的?

提前致谢,

delphi debugging exception delphi-xe

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

串行通信(RTS)和Windows 7

我正在Windows 7下的Delphi 2010 XE RAD Studio上开发Delphi应用程序.我的应用程序不停地在串口上进行讨论.我正在使用AsyncPro for Delphi 2010.串口通信和我开发的计算机上的所有其他工作都很好,没有任何问题.但是,当我的应用程序的发行版本在另一个Windows 7系统上运行时,串行通信完全失败.我们探测了串行通信本身的答案,发现在发送所有字节后不会丢弃请求发送(RTS)线,而在我的开发计算机上,RTS线被正确删除.

即使我明确地将RTS线丢弃到低或假状态,RTS线也不会立即下降,但是在15毫秒之后.因此,我的发布版本上的串行通信失败了.

我是否遗漏了有关Windows 7和串行通信问题的重要信息?

更新:我刚刚发现我的Aysncpro 5.0 for Delphi XE的错误.真奇怪.当我的Delphi XE IDE打开或运行时,我的程序正在完美地进行通信.当我的程序运行时关闭或关闭我的Delphi XE IDE时,相同的程序不能很好地通信或超时.

如果你知道它为什么会发生,请编钟.

任何帮助将不胜感激.

谢谢,

delphi serial-port windows-7

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

无法访问基础事件字段

我试图通过简单地调用:在TListBox doubleclick事件中导致TButton Click事件:

Button1.Click;
Run Code Online (Sandbox Code Playgroud)

我总是能够在Delphi XE和它下面的版本下做到这一点,但现在它在Delphi Prism中引发错误.错误消息是"无法访问基础事件字段".那么,如何在TListBox实例的另一个控件事件中引发事件?

例如:

method UnitSelectDialog.UnitListBox_DoubleClick(sender: System.Object; e: System.EventArgs);
begin
   Okbtn.Click;
end;
Run Code Online (Sandbox Code Playgroud)

上面的代码与单击表单上的OK Tbutton相同.

delphi events listbox delphi-prism

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

为什么ShowDialog总是返回DialogResult.Cancel?

我有一个自定义对话框winform.在它上面我有一个标签,文本框和2个按钮(确定和取消).它还声明并定义了用于传递不同参数列表的重载执行方法.

Dialog Winform的调用方式如下:

var theDialog := new InputMsgBox;

if theInputB.Execute('Awesome StackOverflow','Enter Text?',s,var s) = DialogResult.OK then
begin
  Invalidate;
  SetText(s);
end;
Run Code Online (Sandbox Code Playgroud)

Dialog Winform执行定义如下:

method InputMsgBox.Execute(Title, theMessage, defaultanswer:string;var thevalue:string): DialogResult;
begin
    result := DialogResult.Cancel;

    Requesttext.Text:=themessage;
    Requesttext.Enabled:=true;
    Requesttext.Visible:=true;
    InputTextBox.Text:=defaultanswer;
    InputTextBox.Enabled:=true;
    InputTextBox.Visible:=true;

    CancelBtn.Enabled:=true;
    CancelBtn.Visible:=true;
    Okbtn.Enabled:=true;
    Okbtn.Visible:=true;

    self.ShowDialog;
    Result := self.DialogResult;
    thevalue:=InputTextBox.Text;
end;
Run Code Online (Sandbox Code Playgroud)

当execute方法返回给调用者时,即使单击OKBtn,它也总是返回DialogResult.Cancel.

按钮的对话框相应地设置.

我在Dialog winform上设置了AcceptButton和CancelButton.

我无法弄清楚为什么showdialog方法总是返回DialogResult.Cancel.

更新完成一些测试后,我发现通过调用showdialog = DialogResult.Ok显示我的其他自定义对话框窗口工作正常.所以,我检查了它们两个以查看它们的属性设置是否存在一些差异,并且绝对没有区别.我不明白.提前致谢,

.net dialog return-value delphi-prism dialogresult

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

什么是ActiveX容器?

在我的所有编程生涯中,我从未真正有机会使用Microsoft ActiveX做任何事情.所以,我很少知道它是什么或它用于什么.虽然我在互联网上搜索了答案,但我发现ActiveX或ActiveX容器有很多不同的定义.我的一个客户是为我的软件要求ActiveX容器,我没有.他希望通过此ActiveX容器远程查看或控制我的软件.这可能吗?还有,ActiveX还在吗?我试图看看我是否可以快速地使用这个ActiveX容器供他使用.

我假设ActiveX用于将您的软件的某些部分暴露给Internet或Intranet.因此,用户可以远程访问您的应用程序.

任何回复将不胜感激.谢谢,

delphi containers intranet activex

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

范围检查错误和Delphi 7.0

在花了一周的时间检查并通过FastMM4修复我的程序内存泄漏之后,我终于测试了在不同的PC上运行我的程序.现在,我得到"范围检查错误".我花了几个小时在网上研究这个,但他们似乎都没有给我我想要的东西.我的程序符合运行时错误选项范围检查.所以,我知道这就是我收到错误的原因,但我需要确切地知道错误的原因.

该程序是使用Delphi 7.0在XP上编译的.测试PC是Windows 7.一旦启动,我的程序就开始通过串口进行通信,然后是"Range Check Error"消息框.当我停止串行通信时,没有"范围检查错误"框.这是什么意思,我该如何解决它?我正在寻找简单的策略.我知道我可以花几天时间逐行检查.

由于值的分配不正确或访问数组的不可访问的索引而导致的"范围检查错误".我对么?

delphi range

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

如何从Delphi Phrism中的继承类中正确调用基类构造函数?

我有两个类 - 基类和继承类如下.

基类:

TAlarm = class(System.Object)
private:
protected:
public:
    constructor (tag:TTagname);
end;
Run Code Online (Sandbox Code Playgroud)

继承类:

  TAlarmMsg = class(TAlarm)
  public
    constructor (aname:string);
    method GetAlarmMsg:string; override;
    method SendMsg(msg:string);
  end;
Run Code Online (Sandbox Code Playgroud)

构造函数:

constructor TAlarm(tag:TTagname);
begin
  Tagname := tag;
end;

constructor TAlarmMsg(aname:string);
begin
  inherited TAlarm(aname); <========Here is my problem.
  name := aname.ToCharArray;
end;
Run Code Online (Sandbox Code Playgroud)

无论我使用继承的构造函数调用什么或怎么调用,我在编译源文件时都会收到以下错误消息.

- 在继承的构造函数完成之前无法访问Self.和/或 - 在基类中找不到合适的构造函数,因此需要手动调用inherited

顺便说一下,我花了半天时间研究这个问题,并在网上找到了很好的信息.到目前为止没有任何帮助.我甚至在Delphi Prism Wikipedia(http://prismwiki.embarcadero.com/en/Constructors)上找到了直接讨论构造函数的网页.

那么,你会如何正确地做到这一点?谢谢,

constructor compiler-errors class delphi-prism inherited

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

C#所需的HASP HL工作演示

好的.好吧,我知道这个问题很有可能在前10分钟内被关闭,但我还是会问它,因为我花了将近一天半的时间试图寻找解决方案.不过,我无法想出这个.虽然他们有演示,但即使在HASP(safenet)网站上也没有太多关于此的信息.

我有一个HASP HL USB加密狗.我尝试转换他们的演示和测试运行它,但对于我的生活我甚至无法让它登录甚至.它不断提高Aladdin.HASP.HaspStatus.HaspDotNetDllBroken异常.

但是,如果我运行他们演示的C版本,它可以很好地工作.

这是我的代码的Csharp版本:

Aladdin.HASP;
HASP myHasp = new HASP();
var thestatus = myHasp.Login(vender_code);
myHasp.Logout;
Run Code Online (Sandbox Code Playgroud)

我想登录USB HASP并在其内存中获取其HaspID和设置.

提前致谢,

.net c# usb exception hasp

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

为什么winform面板仅在鼠标悬停或鼠标点击时更新?

我创建了一个测试程序,它应该在linux(PCLinuxOS)下反复地来回更改面板的背景颜色,但它并没有真正起作用.要么它只更新面板的背景颜色只有当你点击某个东西或鼠标悬停在winform上然后它停止或程序在运行一段时间后完全崩溃.

以下是2个面板,一个按钮和一个计时器的winform外观:

在此输入图像描述

这是它背后的代码:

namespace TestIndicator;

interface

uses
  System.Drawing,
  System.Collections,
  System.Collections.Generic,
  System.Windows.Forms,
  System.ComponentModel;

type
  /// <summary>
  /// Summary description for MainForm.
  /// </summary>
  MainForm = partial class(System.Windows.Forms.Form)
  private
    method d_Click(sender: System.Object; e: System.EventArgs);
    method timer1_Tick(sender: System.Object; e: System.EventArgs);
  protected
    method Dispose(disposing: Boolean); override;
  public
    constructor;
  end;

var
    TurnOnRx, TurnOnTx:Boolean;

implementation

{$REGION Construction and Disposition}
constructor MainForm;
begin
  //
  // Required for Windows Form Designer support
  //
  InitializeComponent();

  //
  // TODO: Add any constructor code after InitializeComponent call
  //
  TurnOnRx := true; …
Run Code Online (Sandbox Code Playgroud)

.net linux mono backcolor winforms

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

两个不同的 MQTT 代理可以相互通信吗?

我目前正在探索在我的程序中使用 MQTT 协议的可能性,系统发现有几个不同的 MQTT Brokers。所以,我的问题是,您可以混合搭配经纪人来进行这种沟通吗?例如,设备 1 上的 Mosquitto 代理和设备 2 上的 ActiveMQ Broker。这有效吗?

protocols mqtt iot

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