Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#3

Re: Verkettete Liste: Acces Violation

  Alt 10. Jan 2005, 01:33
Du hast vergessen Prev bzw. Next vom ersten bzw. letzten Glied zu enbtfernen.
Delphi-Quellcode:
procedure TChannelBanList.Unban(const ANickname: string);
var
   ChannelBan : PChannelBan;
begin
   if IsBanned(ANickname, ChannelBan) then
   begin
      if (ChannelBan = FChannelFirstBan) and
         (FChannelLastBan = FChannelFirstBan) then
      begin
         FChannelFirstBan := nil;
         FChannelLastBan := nil;
      end
      else if ChannelBan = FChannelFirstBan then
      begin
         FChannelFirstBan := FChannelFirstBan^.Next;
         FChannelFirstBan^.Prev := nil;
      end
      else if ChannelBan = FChannelLastBan then
      begin
         FChannelLastBan := FChannelLastBan^.Prev;
         FChannelLastBan^.Next := nil;
      end
      else
      begin
         ChannelBan^.Next^.Prev := ChannelBan^.Prev;
         ChannelBan^.Prev^.Next := ChannelBan^.Next;
      end;
      Dispose(ChannelBan);
   end;
end;
  Mit Zitat antworten Zitat