Вверх ↑
Администрация
Ответов: 15295
Рейтинг: 1519
#1: 2008-07-15 18:24:19 ЛС | профиль | цитата
Galkov писал(а):
Так поставь защиту на отрицательные значения в методах doPosition всех элементов.

не согласен с таким подходом. Во всяком случае до тех пор, пока мы не определимся какой пакет делаем - максимально надежный или повозможности быстрый. Конечно к стандартному пакету это относится мало, но все же не стоит приучать пользователя к лени. А своими проверками вы это как раз и делаете. Начинающему хорошо - за него все случае предусмотрены, а опытному беда - обойти эти проверки он не может, хотя знает, что в данной конкретной схеме они глупы и бессмыслены...

Уж если есть такое желание предупредить все глупости пользователя, которые он может сделать то хотя бы стоит ввести дефайн, без которого весь этот мусор не будет попадать в проект. Например:

#pas
   str := ReadString(_Data,_data_Str,');
   {$IFDEF _lamer_mode_}
   if str <> ' then begin
   {$ENDIF}
      Pos := ReadInteger(_Data, _data_Position, _prop_Position); 
      Count := ReadInteger(_Data, _data_Count, _prop_Count);
      if _prop_Direction = 1 then Pos := Length(str) - Count - Pos + 2;
      {$IFDEF _lamer_mode_}
      if Pos <= 0 then begin 
         Inc(Count, Pos-1);
         Pos := 1;
      end;
      {$ENDIF}
      _hi_CreateEvent(_Data, @_event_onCopy, Copy(str,Pos,Count));
   {$IFDEF _lamer_mode_}
   end;
   {$ENDIF}
карма: 27
0