anchor.diff:    begin
       Item := FDrawItems[0];
   
  -    if (FBottomMessagePosition < 0) and (Abs(FBottomMessagePosition) > Item.MessageHeight) then
  +    if (FBottomMessageIndex <= 0) and (Value < 0) then
  +    begin
  +      // Запрет на прокрутку дальше чем самое первое сообщение
  +      FBottomMessageIndex := 0;
  +      FBottomMessagePosition := 0;
  +      IsScroll := True;
  +    end
  +    else if (FBottomMessagePosition < 0) and (Abs(FBottomMessagePosition) > Item.MessageHeight) then
       begin
         FBottomMessageIndex := FBottomMessageIndex - 1;
         FBottomMessagePosition := FBottomMessagePosition + Item.MessageHeight;
  +
         IsScroll := True;
       end
       else if FBottomMessagePosition > 0 then
  
positive.code:     ItemExist := False;
      for j := Low(ItemNew) to High(ItemNew) do
      begin
        if ItemOld[i] = ItemNew[j] then
        begin
          ItemExist := True;
          Break;
  
negative.code:               FBottomMessagePosition := FBottomMessagePosition - MessageInfo.MessageHeight;
                BottomPosition := FBottomMessagePosition;
  
                Continue;
              end;
            end;
  