我尝试了2000-2001的几个组件,但它们都不适用于win7.我该怎么做?
TTest= class
public abc:Integer;
type
TTest2 = class
procedure test;
end;
end;
procedure TTest.TTest2.test();
begin
abc:=5; //'Inaccessible here'
end;
Run Code Online (Sandbox Code Playgroud)
我得到'实例成员abc在这里无法访问'.
情况很严重.我必须使用一个线程,但由于TThread是抽象的,所以自己的类应该继承它.在我的情况下,需要该线程的类已经继承了另一个不能继承TThread的类...所以这是不可能的.我的场景是继承TThread的嵌套类,下面我声明它.但是Execute(); 方法必须使用其父类的成员.
我该怎么做?为什么这个错误?
点是这里的优化.
现在:
type TSomeClass=class(TObject)
private
DataWrite: TBytes;
...
end;
Function TSomeClass.GetPacket: TBytes;
begin
SetLength(Result, Length(DataWrite));
Move(DataWrite[0],Result[0],Length(DataWrite));
end;
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标:
Function TSomeClass.GetPacket: TBytes;
begin
Result := DataWrite;
end;
Run Code Online (Sandbox Code Playgroud)
因为Delphi中的数组是指向第一个元素的指针,后者只能写入4个字节,所以它的速度要快得多.它是否正确?
type
TTest = class
a: integer;
end;
TTest2 = class(TTest)
b: integer;
end;
var c:TTest;
begin
c:=TTest2.Create();
c.Free;
end;
Run Code Online (Sandbox Code Playgroud)