Delphi simplu richedit sarcina de rezolvat înainte de a decide să-l utilizați,

Ca și alte caractere la cursor?

Dacă experiența spune ca aceasta structura:

- experiența nu este adevărat!

Și dacă sunteți interesat - răspunsul corect poate fi văzut sub tăiat ...

Numărul luat nu este clar în cazul în care? - ei bine, nu spune! totul are o explicație logică, trebuie doar o singură dată pentru a înțelege!

Și toate pentru că proprietatea RichEdit.Text este de tipul String. dar în tipul de String - caracter nul păstrează lungimea șirului de caractere, și numai atunci este real textul: astfel încât primul caracter din șirul (pentru noi este „0“) are numărul „1“.

caractere de numerotare proprietatea RichEdit.SelStart este zero pe bază (primul caracter este numărul 0), iar numerotarea caractere pe linie (proprietatea RichEdit.Text. tip String) este o unitate (primul caracter este numărul = 1)

În al doilea rând.
Documentația ne arată că SelStart proprietate indică numărul de caractere din text. Și atunci trebuie să vă amintiți șirul de caractere generate în timpul traducerii (click pe «Enter» cheie) - textul adăugat 2 octeți (caractere) consecutive: 0x0D și 0x0A.
Descrierea următoare este dat aceste simboluri în Wikipedia.

Transportul de retur (Engl retur de car, CR.) - ASCII de control de caractere (0x0D, 1310, „\ r“), derivarea care cursorul este mutat la marginea din stânga a câmpului, fără să treacă la o altă linie. Acest caracter de control este introdus «Enter» buton. După cum a înregistrat în fișierul individual, este tratat ca o pauză de linie numai pe sistemele Macintosh.

linia de alimentare (de la conducta de alimentare engleză, LF -. «Alimentare [hârtie] on-line") - caracterul de control ASCII (0x0A, 10 în notația zecimală, '\ n'), derivarea care cursorul se mută la linia următoare. În cazul imprimantei, acest lucru înseamnă o schimbare în sus de hârtie, în cazul afișajului - cursorul în jos schimbare, dacă aveți o cameră la stânga, și derulați textul în sus, în cazul în care cursorul se află pe linia de jos. Returnează dacă cursorul la marginea din stânga sau nu, depinde de punerea în aplicare.

Deci, SelStart consideră că acești doi octeți (Carriage Return -. 0h0D NEWLINE - 0x0A) - un caracter!

Dar, în proprietatea RichEdit.Text, acesta va avea numărul 7.

Tuturor a devenit destul de clar am pictat un semn (prima coloană - indicele celui de al doilea SelStart - conformare SelStart Index Simbol CharPos al treilea - Rând de text [Index] caractere):

Delphi simplu richedit sarcina de rezolvat înainte de a decide să-l utilizați,

Pe de altă parte, cunoscând poziția caracterului în RichEdit.Text de text poate face o schimbare de atributele sale:

articole similare