ImageEn, unit iexUserInteractions

TIEPdfViewerInteraction.CharIndexToLine

TIEPdfViewerInteraction.CharIndexToLine


Declaration

procedure CharIndexToLine(const CharIndex: Integer; out OutIndex: Integer; out OutLength: Integer);


Description

Converts the index of a character in the current page to the start and end character for the entire line.
If the method fails, OutLength will return 0.

Notes:
- CharIndex is zero-based
- To convert CharIndex/Length to a screen position, use GetTextRects
- To convert a screen position to a CharIndex, use ScrToCharIndex


Examples

// Show the text under the cursor
procedure TfrmMain.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  charIndex, textIndex, textLength: Integer;
begin
  charIndex := ImageEnView1.PdfViewer.ScrToCharIndex( X, Y );
  ImageEnView1.PdfViewer.CharIndexToLine( charIndex, textIndex, textLength );
  lblLine.Caption := ImageEnView1.PdfViewer.GetText( textIndex, textLength );
end;

// Output each line of text
var
  idx, outIndex, outLength: Integer;
  s: String;
begin
  Memo1.Clear;
  idx := 0;
  While idx < MAXINT do // Infinite loop
  begin
    ImageEnView1.PdfViewer.CharIndexToLine( idx, outIndex, outLength );
    if outLength = 0 then
      BREAK;
    s := ImageEnView1.PdfViewer.GetText( outIndex, outLength );
    memo1.Lines.Add( Trim( s ));
    idx := outIndex + outLength + 1;
  end;
end;


See Also

- CharIndexToWord
- SelectLine