Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > SynUniHighlighter и SynEdit > простенький инспектор кода


Автор: rOOxus 3.9.2009, 14:50
пишу простенький эксплорер кода с использованием SynEdit. от него пока требуеться после сохранения кода сканировать его на предмет наличия процеду и функций и добалять их в список.
сканирую так:
Код
var
      s : string;
      i : Integer;

   SynPasSyn.SetLine(SynMemo.Lines.Text, 1);
   while not SynPasSyn.GetEol do
   begin
      s := SynPasSyn.GetToken; // запоминаю сам символ
      i := SynPasSyn.GetTokenPos; // запоминаю позицию символа

      // добавляем символ и его позицию в список
      ....

      end;
      SynPasSyn.Next;
   end;

а вот теперь надо чтобы по двойному щелчку по списку SynMemo прыгал на ту самую позицию, но у него есть CaretX и CaretY которые указывают столбец и строку каретки, а я запомнил только номер символа в тексте
вопрос: а как тогда узнать позицию симовла: у TSynPasSyn ни функуии такой ни свойства нет...

Автор: Crw 4.9.2009, 18:43
А функцию CharIndexToRowCol использовать не пробовали?

Автор: rOOxus 4.9.2009, 22:13
точно smile спасибо. с компонентом работаю недавно - еще туплю...
а вот теперь еще вопросик чисто концептуальный. сразу оговорюсь синтаксис кода только паскалевский. вот с процедурами и функциями понятно: надо найти соответствующие ключевые слова в коде и определить координаты следующего слова за этими ключевыми словами
а как бы распознавать переменные - те что поле var располагаються ну и константы например?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)