我正在使用具有许多抽象类的组件套件.现在我想应用多态,但是在创建对象时我得到了错误抽象类.
我是否应该覆盖所有虚拟方法,即使我不需要它?有任何解决方法或解决方案吗?
我试图验证3点(双)在2-D中是否共线.我发现不同的Pascal函数如果经过验证则返回true; 这些函数使用整数来指定X和Y坐标.我需要更精确的计算至少对X和Y的小数部分的前3位数字表示为double类型.谁可以帮我这个?
我找到了这个功能:
function Collinear(x1, y1, x2, y2, x3, y3: Double): Boolean;
begin
Result := (((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) = 0);
end;
Run Code Online (Sandbox Code Playgroud)
但我想计算永远不会是0.我应该使用类似的东西吗?
function Collinear(x1, y1, x2, y2, x3, y3: Double): Boolean;
begin
Result := (((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) < 0.01);
end;
Run Code Online (Sandbox Code Playgroud) 如何在Delphi中执行外部脚本(如wsh,vbs,bat ...)并获取结果?我想将它们作为线程中的任务启动其他事情,当结果准备好时,脚本本身将通知将在主线程中接收它的应用程序.怎么实现呢?
我有一张5700条记录的表格.主键是整数.现在我注意到缺少一些值.像这样:
100 data
101 data
102 data
104 data
Run Code Online (Sandbox Code Playgroud)
103不见了.如何使秩序成为正确的,我可以更新所有的行(104成为103在我的例子)在一个SQL命令?
我已经编译了一个vcl包,这是一个在delphi 2009中注册了几个动作的组件集合.现在,从这些动作开始,我创建了其他动作,但即使我注册了它,我也无法在Action Edit Dialog中看到它们.我该如何添加它们?
我试着让这个库使用线程,但是我无法使用syncronize将结果返回到主线程.
在excute方法中创建xml没问题.
有人用过吗?
TMyThread = class(TThread)
private
ADoc : TNativeXml;
protected
procedure Execute; override;
procedure DoProgress;
public
constructor Create(CreateSuspended: Boolean);
end;
{ TMyThread }
constructor TMyThread.Create(CreateSuspended: Boolean);
begin
inherited;
end;
procedure TMyThread.DoProgress;
begin
formMain.meminfo.Lines.Add(ADoc.WriteToString);
end;
procedure TMyThread.Execute;
var i,j : integer;
begin
inherited;
begin
ADoc:= ADoc.Create(formMain);
try
Adoc.XmlFormat := xfReadable;
ADoc.LoadFromFile('test.xml');
Synchronize(DoProgress);
finally
FreeAndNil(ADoc);
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)