外部From
声明
type
PWideStringList = ^TWideStringList ;
TWideStringList = record
str : WideString ;
RW : WideString ;
HW : wideString ;
iType : byte ; // = 1 时为状态更新,否则为其它 next : PWideStringList ;
end ; TfrmTrack = class(TForm)
TailNode : PWideStringList ;
HeadNode : PWideStringList ;
在多程中如此访问。。
type
TNICETrackThread = class(TThread)
private sqltext : widestring ;
sqlRWtext : widestring ;
sqlHWtext : widestring ;
sqlType : byte ; end;procedure TNICETrackThread.Execute ;
begin
sqltext :='adfadsfadsf';
sqlRWtext :='';
sqlHWtext :='';
sqlType :=1;
Synchronize(Addsqltext) ;
end;
procedure TNICETrackThread.Addsqltext;
var temNode : PWideStringList ;
begin
with frmTrack do
begin
// try
new( temNode ) ; temNode.str := sqltext ;
if trim(sqlRWtext)='' then
temNode.RW := ''
else
temNode.RW := sqlRWtext ;
if trim(sqlHWtext)='' then
temNode.HW := ''
else
temNode.HW := sqlHWtext ;
if sqlType<>1 then
temNode.iType := 0
else
temNode.iType := sqlType ; sqlRWtext := '' ;
sqlHWtext := '' ;
sqlType := 0 ; temNode.next := nil ; if TailNode <> nil then
begin
TailNode.next := temNode ;
TailNode := temNode ;
end else
TailNode := temNode ; if HeadNode = nil then
HeadNode := temNode ; iSQLCount := iSQLCount + 1 ;
// except
// dispose(temNode) ; //end; end ;
end;
问题。。当运行线程时。。
这条语句经常报错。。 TailNode.next := temNode ;要如果解决..
声明
type
PWideStringList = ^TWideStringList ;
TWideStringList = record
str : WideString ;
RW : WideString ;
HW : wideString ;
iType : byte ; // = 1 时为状态更新,否则为其它 next : PWideStringList ;
end ; TfrmTrack = class(TForm)
TailNode : PWideStringList ;
HeadNode : PWideStringList ;
在多程中如此访问。。
type
TNICETrackThread = class(TThread)
private sqltext : widestring ;
sqlRWtext : widestring ;
sqlHWtext : widestring ;
sqlType : byte ; end;procedure TNICETrackThread.Execute ;
begin
sqltext :='adfadsfadsf';
sqlRWtext :='';
sqlHWtext :='';
sqlType :=1;
Synchronize(Addsqltext) ;
end;
procedure TNICETrackThread.Addsqltext;
var temNode : PWideStringList ;
begin
with frmTrack do
begin
// try
new( temNode ) ; temNode.str := sqltext ;
if trim(sqlRWtext)='' then
temNode.RW := ''
else
temNode.RW := sqlRWtext ;
if trim(sqlHWtext)='' then
temNode.HW := ''
else
temNode.HW := sqlHWtext ;
if sqlType<>1 then
temNode.iType := 0
else
temNode.iType := sqlType ; sqlRWtext := '' ;
sqlHWtext := '' ;
sqlType := 0 ; temNode.next := nil ; if TailNode <> nil then
begin
TailNode.next := temNode ;
TailNode := temNode ;
end else
TailNode := temNode ; if HeadNode = nil then
HeadNode := temNode ; iSQLCount := iSQLCount + 1 ;
// except
// dispose(temNode) ; //end; end ;
end;
问题。。当运行线程时。。
这条语句经常报错。。 TailNode.next := temNode ;要如果解决..
message 'Access violation at address 0054C2C in module'
Etrack.exe .write of address 00Ebd4d0