Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Access Violation durch Length(Array)?

  Alt 28. Nov 2012, 16:09
Hier mal wie das Array befüllt und geleert wird. Mag sein, dass die Remove-Methode noch etwas umständlich ist, die hab ich noch nicht überarbeitet, vllt. wird da auch das Array zerschossen?

Delphi-Quellcode:
procedure TTapiLine.AddCall(Call: TTapiCall);
begin
  SetLength(priv_Calls,High(priv_Calls)+2);
  priv_Calls[High(priv_Calls)]:=Call;
end;

procedure TTapiLine.AddCall(CallHandle: Cardinal);
var Call:TTapiCall;
begin
  Call:=TTapiCall.Create(CallHandle);
  if Call.Initialized then
    AddCall(Call)
  else
    Call.Free;
end;

procedure TTapiLine.RemoveCall(CallHandle: Cardinal);
var i,j:integer;
begin
  if CallCount=0 then exit;
  i:=low(priv_calls);
  while (priv_calls[i].Handle<>CallHandle) and (i<high(priv_calls)) do
    inc(i);
  if priv_calls[i].Handle=CallHandle then
    begin
    for j:=i to high(priv_Calls)-1 do
      priv_Calls[j]:=priv_Calls[j+1];
    Setlength(priv_Calls, High(priv_Calls));
    end;
end;
Ralph
  Mit Zitat antworten Zitat