1
Я хотел бы прокрутить текущий вид до определенной строки в FMX Memo. Я имел обыкновение использовать ниже код в VCL компонента:Как прокрутить текущий вид к определенной строке в заметке FMX в C++ Builder?
TopVisibleRow = SendMessage(LogMemo->Handle, EM_GETFIRSTVISIBLELINE, 0, 0);
SendMessage(LogMemo->Handle, EM_LINESCROLL, 0 , TargetLine - TopVisibleRow));
Есть ли способ, чтобы перейти к конкретной строке в FMX памятку для применения кросс-платформенной?
Я использую C++ Builder Берлин Update 2.
Не к конкретной строке непосредственно, нет. Но 'TMemo' в FireMonkey имеет методы' ScrollTo', 'ScrollBy',' PosToTextPos' и 'PosToTextPos', поэтому вы должны иметь возможность рассчитать необходимые смещения. –
«TextPosToPos» или «PosToTextPos» просто возвращает целое число, представляющее позицию символа, но для прокрутки ему нужно X, Y в поплавке. Мне нужен метод, чтобы скрывать их. –
, как и в VCL, если вы знаете позицию первой видимой строки и нужной строки, вы можете вычислить смещение прокрутки. В FireMonkey нет 'EM_GETFIRSTVISIBLELINE', но' ScrollTo() 'использует [' ViewportPosition'] (http://docwiki.embarcadero.com/Libraries/en/FMX.ScrollBox.TCustomPresentedScrollBox.ViewportPosition) для перехода к определенной координате , Это большая часть работы для вас, если вы можете выяснить, как преобразовать текстовые позиции в/из координат. Возможно, может помочь ['TMemo.GetPointPosition (0,0)'] (http://docwiki.embarcadero.com/Libraries/en/FMX.Memo.TMemo.GetPointPosition). –