anchor.diff:    FIRC.OnMessageReceived := @OnMessageReceived;
     FIRC.OnNickListReceived := @OnNickListReceived;
     FIRC.OnUserJoined := @OnUserJoined;
  -  FIRC.OnUserParted := @OnUserParted;
     FIRC.OnChannelJoined := @OnChannelJoined;
     FIRC.OnShowPopup := @OnShowPopup;
   
  
positive.code:   User := TUser.Create(Nick);
    Channel.Users.Add(User);
    AddUserToTreeView(User, Channel);
  end;
  
  procedure TMainForm.OnUserParted(const Channel, User: string);
  begin
    if User = FIRC.NickName then
      CloseChannel(Channel)
    else
      RemoveNickFromChannelList(User, Channel);
  end;
  
  constructor TMainForm.Create(TheOwner: TComponent);
  
negative.code:     procedure AddNicksToChannel(const Channel: TChannel; const List: TStrings);
      procedure AddNicksToTreeView(const Channel: TChannel);
      procedure AddUserToTreeView(const User: TUser; const Channel: TChannel);
      procedure ConfigureMemo(var Memo: TMemo);
      procedure SetColors;
      function FindChannelNode(const Channel: string): TTreeNode;
  