возможно полезные изменения

отредактировано 03:52 Раздел: FastScript
TfsSyntaxMemo:

добавил inherited; в начале процедур MouseDown, MouseMove, MouseUp, MouseWheelDown, MouseWheelUp компонента

в процедуре ShiftSelected изменил
Shift:=3; //было Shift:=2;
чтобы блоки сдвигались по 3 символа вправо/влево, а не по 2 при нажатии Ctr+U/I (лучше сделать свойством компонента)

заремил лимит Undo (было 32 - СЛИШКОМ мало) в процедуре AddUndo

в процедуре ShowCaretPos добавил условие <if FMessage = '' then> перед вызовом ShowPos (если у нас была вызвана TSyntaxMemo.ShowMessage(s: string) и у нас внизу пишется наше ссобщение, то, чтобы при прорисовке этого SyntaxMemo, например, при скроллинге, у нас не налезали друг на друга наше сообщение и текст о положении курсора. До изменения они быстро перемаргивались)

в процедуре KeyDown в case при удалении строки (выбор Ctrl+Y), добавил вызов DoChange, чтобы изменения фиксировались в Modified

в published добавил 'property OnKeyPress' (надо перекомпилировать, чтобы можно было пользоваться: Component->Install Packages-> в списке выбрать 'FastScript 1.0 Components' и нажать Edit. На вопрос об отмене этого окна и открытии dclfs.dpk ответить Yes. Откомпилировать заново dclfs.dpk)

в процедуре MouseDown при вызове SetPos изменил в первом параметре
'(X-FGutterWidth) div FCharWidth + 1 + FOffset.X'
на
'(X-FGutterWidth+FCharWidth div 2-1) div FCharWidth+1+FOffset.X', чтобы при нажатии мыши в окне, курсор прыгал в сторону от нажатого символа в зависимости от того, где нажали ближе на символе (ближе к его правому или левому краю символа - туда и ставится курсор)

в процедуру SetText в конце добавил DoChange, чтобы при любом изменении текста срабатывала процедура OnChange

добавил удаление блока (Ctrl+Backspace)
в процедуре KeyDown в case'е при выборе vk_back добавил условие 'if not (ssCtrl in Shift) then', чтобы BackSpace срабатывал только если НЕ нажата Ctrl
а в процедуре KeyPress в case добавил
    #127: //Ctrl+BackSpace
      begin
      DoCtrlL;
      AddSel;
      DoDel;
      end;

    //изменить условие
    #32..#126,#128..#255://пропускаем #127, т.к. он возвращается при Ctrl+BackSpace
      begin
        DoChar(Key);
        FMoved := True;
      end;


TfsTree:

добавил поле 'FShowVariables: Boolean;' в private и свойство 'property ShowConstants: boolean read FShowConstants write FShowConstants;' в published. Еще в процедуре FillTree добавил условие
  if ShowConstants then
    AddConstants(FXML.Root.FindItem('Constants'), nil);
и локальную процедуру AddConstants по аналогии с AddVariables, AddTypes и т.д.
в конструкторе Create добавил строку 'ShowConstants := True;'

в процедуре TreeDblClick изменил 'SyntaxMemo.SelText := Tree.Selected.Text;' на 'SyntaxMemo.SelText := GetFieldName;', чтобы при вставке слова в SynMemo вставлялась не вся конструкция с описаниями параметров и т.п., а только название, скобки и запятые для параметров

чтобы сделать рабочим событие OnDblClick, добавил поле 'FOnDblClick: TNotifyEvent;', а в published изменил свойство 'property OnDblClick;' на 'property OnDblClick: TNotifyEvent read FOnDblClick write FOnDblClick;'
А в процедуре TeeDblClick добавил:
  if Assigned(FOnDblClick) then
    FOnDblClick(Sender);



модуль fs_synmemo:

в глоб переменную WordChars добавлены символы (чтобы русские слова распознавались как слова, а не как посторонние символы, типа '!@#')

константы CppKeywords, JSKeywords, PasKeywords, SQLKeywords, VBKeywords, WordChars вынесены из implementation в interface, чтобы были доступны программисту из его модулей


модуль fs_isysrtti:

в функции TFunctions.CallMethod2 исправлена ошибка 'StrToDateTime' (в этом слове стояли 2 буквы 'D') - взято с этого же форума

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.