Class TUnicodeAnalysis
Unit
Declaration
type TUnicodeAnalysis = class(TObject)
Description
Analyze Unicode text to build a tree
Hierarchy
- TObject
- TUnicodeAnalysis
Overview
Fields
|  | FBidi: TBidiUTF8Array; | 
|  | FBidiMode: TFontBidiMode; | 
|  | FCharCount: integer; | 
|  | FParagraph: array of record
      firstUnbrokenLineIndex: integer;
    end; | 
|  | FParagraphCount: integer; | 
|  | FText: string; | 
|  | FUnbrokenLine: array of record
      startIndex: integer;
      paragraphIndex: integer;
    end; | 
|  | FUnbrokenLineCount: integer; | 
Methods
|  | constructor Create(ATextUTF8: string; ABidiMode: TFontBidiMode); | 
|  | function CopyTextUTF8(AStartIndex, ACount: integer): string; | 
|  | function CopyTextUTF8DiscardChars(AStartIndex,AEndIndex: integer; out ANonDiscardedCount: integer): string; | 
|  | function CreateBidiTree(ABidiTreeFactory: TBidiTreeAny; AData: pointer; AStartIndex, AEndIndex: integer; AEmbeddingBidiLevel: integer): TBidiTree; | 
|  | function DeleteText(APosition, ACount: integer): integer; | 
|  | function DeleteTextBefore(APosition, ACount: integer): integer; | 
|  | function GetParagraphAt(ACharIndex: integer): integer; | 
|  | function IncludeNonSpacingChars(APosition, ACount: integer; AIncludeCombiningMarks: boolean = true): integer; | 
|  | function IncludeNonSpacingCharsBefore(APosition, ACount: integer; AIncludeCombiningMarks: boolean = true): integer; | 
|  | function InsertText(ATextUTF8: string; APosition: integer): integer; | 
|  | function GetBidiInfo(APosition0: integer): TUnicodeBidiInfo; | 
|  | function GetParagraphEndIndex(AIndex: integer): integer; | 
|  | function GetParagraphEndIndexBeforeParagraphSeparator(AIndex: integer): integer; | 
|  | function GetParagraphFirstUnbrokenLine(AIndex: integer): integer; | 
|  | function GetParagraphLastUnbrokenLinePlusOne(AIndex: integer): integer; | 
|  | function GetParagraphStartIndex(AIndex: integer): integer; | 
|  | function GetUnbrokenLineEndIndex(AIndex: integer): integer; | 
|  | function GetUnbrokenLineParagraphIndex(AIndex: integer): integer; | 
|  | function GetUnbrokenLineStartIndex(AIndex: integer): integer; | 
|  | function GetUnicodeChar(APosition0: integer): LongWord; | 
|  | function GetUTF8Char(APosition0: integer): string4; | 
|  | function InternalInsertText(APosition: integer; const ANewBidi: TBidiUTF8Array; ANewTextUTF8: string): integer; | 
|  | procedure Analyze; | 
|  | procedure CheckCharRange(AStartIndex, AEndIndex: integer; AMinIndex, AMaxIndex: integer); | 
|  | procedure CheckTextAnalysis; | 
|  | procedure CreateBidiTreeRec(ABidiTreeFactory: TBidiTreeAny; AData: pointer; ABidiTree: TBidiTree); | 
|  | procedure InternalDeleteBidiAndUTF8(ABidiStart, ABidiCount: integer); | 
|  | procedure InternalDeleteParagraph(AParagraphIndex: integer); | 
|  | procedure InternalDeleteText(APosition, ACount: integer); | 
|  | procedure InternalDeleteWithinParagraph(AParagraphIndex: integer; APosition, ACount: integer; AUpdateBidi: boolean); | 
|  | procedure InternalMergeParagraphWithNext(AParagraphIndex: integer); | 
|  | procedure InternalSplitParagraph(AParagraphIndex: integer); | 
|  | procedure InternalUpdateBidiIsolate(AParagraphIndex: integer; ABidiStart, ABidiCount: integer); | 
|  | procedure InternalUpdateUnbrokenLines(AParagraphIndex: integer); | 
|  | procedure SetBidiMode(AValue: TFontBidiMode); | 
Properties
|  | property BidiInfo[APosition0: integer]: TUnicodeBidiInfo read GetBidiInfo; | 
|  | property BidiMode: TFontBidiMode read FBidiMode write SetBidiMode; | 
|  | property CharCount: integer read FCharCount; | 
|  | property OnAnalysisChanged: TAnalysisChangedEvent read FOnAnalysisChanged write FOnAnalysisChanged; | 
|  | property OnBidiModeChanged: TNotifyEvent read FOnBidiModeChanged write FOnBidiModeChanged; | 
|  | property OnCharDeleted: TDeleteCharEvent read FOnCharDeleted write FOnCharDeleted; | 
|  | property OnCharInserted: TInsertCharEvent read FOnCharInserted write FOnCharInserted; | 
|  | property OnParagraphDeleted: TParagraphEvent read FOnParagraphDeleted write FOnParagraphDeleted; | 
|  | property OnParagraphMergedWithNext: TParagraphEvent read FOnParagraphMergedWithNext write FOnParagraphMergedWithNext; | 
|  | property OnParagraphSplit: TParagraphSplitEvent read FOnParagraphSplit write FOnParagraphSplit; | 
|  | property ParagraphCount: integer read FParagraphCount; | 
|  | property ParagraphEndIndex[AIndex: integer]: integer read GetParagraphEndIndex; | 
|  | property ParagraphEndIndexBeforeParagraphSeparator[AIndex: integer]: integer read GetParagraphEndIndexBeforeParagraphSeparator; | 
|  | property ParagraphFirstUnbrokenLine[AIndex: integer]: integer read GetParagraphFirstUnbrokenLine; | 
|  | property ParagraphLastUnbrokenLinePlusOne[AIndex: integer]: integer read GetParagraphLastUnbrokenLinePlusOne; | 
|  | property ParagraphRightToLeft[AIndex: integer]: boolean read GetParagraphRightToLeft; | 
|  | property ParagraphStartIndex[AIndex: integer]: integer read GetParagraphStartIndex; | 
|  | property TextUTF8: string read FText; | 
|  | property UnbrokenLineCount: integer read FUnbrokenLineCount; | 
|  | property UnbrokenLineEndIndex[AIndex: integer]: integer read GetUnbrokenLineEndIndex; | 
|  | property UnbrokenLineParagraphIndex[AIndex: integer]: integer read GetUnbrokenLineParagraphIndex; | 
|  | property UnbrokenLineStartIndex[AIndex: integer]: integer read GetUnbrokenLineStartIndex; | 
|  | property UnicodeChar[APosition0: integer]: LongWord read GetUnicodeChar; | 
|  | property UTF8Char[APosition0: integer]: string4 read GetUTF8Char; | 
Description
Fields
|  | FBidi: TBidiUTF8Array; | 
| This item has no description. | |
|  | FBidiMode: TFontBidiMode; | 
| This item has no description. | |
|  | FCharCount: integer; | 
| This item has no description. | |
|  | FParagraph: array of record
      firstUnbrokenLineIndex: integer;
    end; | 
| This item has no description. | |
|  | FParagraphCount: integer; | 
| This item has no description. | |
|  | FText: string; | 
| This item has no description. | |
|  | FUnbrokenLine: array of record
      startIndex: integer;
      paragraphIndex: integer;
    end; | 
| This item has no description. | |
|  | FUnbrokenLineCount: integer; | 
| This item has no description. | |
Methods
|  | constructor Create(ATextUTF8: string; ABidiMode: TFontBidiMode); | 
| This item has no description. | |
|  | function CopyTextUTF8(AStartIndex, ACount: integer): string; | 
| This item has no description. | |
|  | function CopyTextUTF8DiscardChars(AStartIndex,AEndIndex: integer; out ANonDiscardedCount: integer): string; | 
| This item has no description. | |
|  | function CreateBidiTree(ABidiTreeFactory: TBidiTreeAny; AData: pointer; AStartIndex, AEndIndex: integer; AEmbeddingBidiLevel: integer): TBidiTree; | 
| This item has no description. | |
|  | function DeleteText(APosition, ACount: integer): integer; | 
| This item has no description. | |
|  | function DeleteTextBefore(APosition, ACount: integer): integer; | 
| This item has no description. | |
|  | function GetParagraphAt(ACharIndex: integer): integer; | 
| This item has no description. | |
|  | function IncludeNonSpacingChars(APosition, ACount: integer; AIncludeCombiningMarks: boolean = true): integer; | 
| This item has no description. | |
|  | function IncludeNonSpacingCharsBefore(APosition, ACount: integer; AIncludeCombiningMarks: boolean = true): integer; | 
| This item has no description. | |
|  | function InsertText(ATextUTF8: string; APosition: integer): integer; | 
| This item has no description. | |
|  | function GetBidiInfo(APosition0: integer): TUnicodeBidiInfo; | 
| This item has no description. | |
|  | function GetParagraphEndIndex(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetParagraphEndIndexBeforeParagraphSeparator(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetParagraphFirstUnbrokenLine(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetParagraphLastUnbrokenLinePlusOne(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetParagraphStartIndex(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetUnbrokenLineEndIndex(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetUnbrokenLineParagraphIndex(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetUnbrokenLineStartIndex(AIndex: integer): integer; | 
| This item has no description. | |
|  | function GetUnicodeChar(APosition0: integer): LongWord; | 
| This item has no description. | |
|  | function GetUTF8Char(APosition0: integer): string4; | 
| This item has no description. | |
|  | function InternalInsertText(APosition: integer; const ANewBidi: TBidiUTF8Array; ANewTextUTF8: string): integer; | 
| This item has no description. | |
|  | procedure Analyze; | 
| This item has no description. | |
|  | procedure CheckCharRange(AStartIndex, AEndIndex: integer; AMinIndex, AMaxIndex: integer); | 
| This item has no description. | |
|  | procedure CheckTextAnalysis; | 
| This item has no description. | |
|  | procedure CreateBidiTreeRec(ABidiTreeFactory: TBidiTreeAny; AData: pointer; ABidiTree: TBidiTree); | 
| This item has no description. | |
|  | procedure InternalDeleteBidiAndUTF8(ABidiStart, ABidiCount: integer); | 
| This item has no description. | |
|  | procedure InternalDeleteParagraph(AParagraphIndex: integer); | 
| This item has no description. | |
|  | procedure InternalDeleteText(APosition, ACount: integer); | 
| This item has no description. | |
|  | procedure InternalDeleteWithinParagraph(AParagraphIndex: integer; APosition, ACount: integer; AUpdateBidi: boolean); | 
| This item has no description. | |
|  | procedure InternalMergeParagraphWithNext(AParagraphIndex: integer); | 
| This item has no description. | |
|  | procedure InternalSplitParagraph(AParagraphIndex: integer); | 
| This item has no description. | |
|  | procedure InternalUpdateBidiIsolate(AParagraphIndex: integer; ABidiStart, ABidiCount: integer); | 
| This item has no description. | |
|  | procedure InternalUpdateUnbrokenLines(AParagraphIndex: integer); | 
| This item has no description. | |
|  | procedure SetBidiMode(AValue: TFontBidiMode); | 
| This item has no description. | |
Properties
|  | property BidiInfo[APosition0: integer]: TUnicodeBidiInfo read GetBidiInfo; | 
| This item has no description. | |
|  | property BidiMode: TFontBidiMode read FBidiMode write SetBidiMode; | 
| This item has no description. | |
|  | property CharCount: integer read FCharCount; | 
| This item has no description. | |
|  | property OnAnalysisChanged: TAnalysisChangedEvent read FOnAnalysisChanged write FOnAnalysisChanged; | 
| This item has no description. | |
|  | property OnBidiModeChanged: TNotifyEvent read FOnBidiModeChanged write FOnBidiModeChanged; | 
| This item has no description. | |
|  | property OnCharDeleted: TDeleteCharEvent read FOnCharDeleted write FOnCharDeleted; | 
| This item has no description. | |
|  | property OnCharInserted: TInsertCharEvent read FOnCharInserted write FOnCharInserted; | 
| This item has no description. | |
|  | property OnParagraphDeleted: TParagraphEvent read FOnParagraphDeleted write FOnParagraphDeleted; | 
| This item has no description. | |
|  | property OnParagraphMergedWithNext: TParagraphEvent read FOnParagraphMergedWithNext write FOnParagraphMergedWithNext; | 
| This item has no description. | |
|  | property OnParagraphSplit: TParagraphSplitEvent read FOnParagraphSplit write FOnParagraphSplit; | 
| This item has no description. | |
|  | property ParagraphCount: integer read FParagraphCount; | 
| This item has no description. | |
|  | property ParagraphEndIndex[AIndex: integer]: integer read GetParagraphEndIndex; | 
| This item has no description. | |
|  | property ParagraphEndIndexBeforeParagraphSeparator[AIndex: integer]: integer read GetParagraphEndIndexBeforeParagraphSeparator; | 
| This item has no description. | |
|  | property ParagraphFirstUnbrokenLine[AIndex: integer]: integer read GetParagraphFirstUnbrokenLine; | 
| This item has no description. | |
|  | property ParagraphLastUnbrokenLinePlusOne[AIndex: integer]: integer read GetParagraphLastUnbrokenLinePlusOne; | 
| This item has no description. | |
|  | property ParagraphRightToLeft[AIndex: integer]: boolean read GetParagraphRightToLeft; | 
| This item has no description. | |
|  | property ParagraphStartIndex[AIndex: integer]: integer read GetParagraphStartIndex; | 
| This item has no description. | |
|  | property TextUTF8: string read FText; | 
| This item has no description. | |
|  | property UnbrokenLineCount: integer read FUnbrokenLineCount; | 
| This item has no description. | |
|  | property UnbrokenLineEndIndex[AIndex: integer]: integer read GetUnbrokenLineEndIndex; | 
| This item has no description. | |
|  | property UnbrokenLineParagraphIndex[AIndex: integer]: integer read GetUnbrokenLineParagraphIndex; | 
| This item has no description. | |
|  | property UnbrokenLineStartIndex[AIndex: integer]: integer read GetUnbrokenLineStartIndex; | 
| This item has no description. | |
|  | property UnicodeChar[APosition0: integer]: LongWord read GetUnicodeChar; | 
| This item has no description. | |
|  | property UTF8Char[APosition0: integer]: string4 read GetUTF8Char; | 
| This item has no description. | |