Ich habe eine Klasse wie folgt:Zugriffsverletzung in einer delphi Klasse
Component = class(TObject)
Name: string;
CurState: word;
States: array of state;
constructor Create(nm: string);
procedure AddState(ccl: bool; const InB: BufArr; const OutB: BufArr);
function GetStateCount(): Integer;
end;
States
ist ein Array von state
, die auch eine Klassendeklaration ist.
State = class(TObject)
InBuf: BufArr;
OutBuf: BufArr;
Cycle: bool;
constructor Create(ccl: bool; const InB: BufArr; const OutB: BufArr);
end;
kann Jeder component
halten mehr als ein state
, weshalb ich eine Reihe von state
haben.
Die GetStateCount()
Funktion sollte die Anzahl der Zustände eine Komponente has.The Implementierung Rückkehr ist wie folgt:
function Component.GetStateCount(): Integer;
begin
result:=Length(States);
end;
Allerdings, wenn ich diese Funktion in einem anderen Verfahren nennen, ich die folgende Fehlermeldung erhalten:
Ich kann nicht scheinen, die Ursache dafür herauszufinden. Ich werde jede Hilfe zu schätzen wissen.
Okay, hier ist der Teil des Codes, wo ich die Funktion bin Aufruf:
for i:=0 to nc-1 do
begin
cycle:=false;
len:=cmp[i].GetStateCount;
for j:=0 to len-1 do
if not cmp[i].States[j].Cycle or cycle then
continue;
cycle:=true;
for k:= 0 to length(cmp[i].States[j].InBuf)-1 do
begin
m:=cmp[i].States[j].InBuf[k];
if m>0 then
graph[m-1,i]:= graph[m-1,i]+1;
end;
end;
Können Sie voll * .pas Code? –
Das ist nicht dein richtiger Code. Wenn Sie Hilfe bei einem Problem mit Ihrem Code benötigen, geben Sie Ihren tatsächlichen Code ein. Es zu machen, wenn du gehst, ist nutzlos; Es kann neue Probleme verursachen oder das eigentliche Problem verbergen. Was Sie gepostet haben, ist in keiner Weise vollständig, und es kann nicht zum Testen kompiliert und/oder verwendet werden. Lies [mcve] und [edit] deine Frage, wenn du uns helfen willst. –
@KenWhite das ist in der Tat nicht sein komplettes Projekt. Aber Sie haben keinen Grund zu sagen, dass der Code "nicht echt" ist, ist es höchstwahrscheinlich. –