Legarea de rânduri și componente

Delphi. Componente și clase. componente

Legarea de rânduri și componente

Este posibil de a lega un șir de caractere pentru fiecare componentă?

Deoarece proprietatea de etichete este de tip longint, îl puteți aduce la proprietatea Pointer sau PChar. Deci, puteți stoca un pointer la înregistrarea folosind proprietatea de etichete.

Notă: Nu puteți salva o astfel de linie fel, un pointer, sau orice altceva în modul de dezvoltare. Acest lucru se poate face doar în timpul rulării. Aruncati o privire la acest exemplu:

Aici organizăm ciclu și du-te în jurul valorii de toate componentele pe formular. În cazul în care o componentă - tEditează, vom atribui un pointer la o etichetă de proprietate șir de caractere. Funcția returnează NewStr PString (pointer la un șir de caractere). Pointer, de tip longint cea mai mare parte identice, sau chiar „mai bine“, adică Este în memoria același număr de octeți. Prin urmare, puteți face o distributie de tip LongInt NewStr valoarea returnată și apoi păstrați-l în componenta tEditează Tag proprietate. Rețineți că acest lucru poate fi un pointer la întreaga înregistrare. Acum folosim această valoare:

Iată-mă din nou, „ruleaza“ pentru toate componentele și să lucreze numai cu TEdits. În acest moment, am extras valoarea proprietății Tag a componentei, conducându-l tip PString (pointer la un șir de caractere, un pointer la un șir de caractere), și atribuirea acesteia valoarea componentei text tEditează proprietate. Desigur, în acest caz, trebuie să utilizeze un simbol cheie (^). După aceea am scăpa de șir stocat în componenta tEditează. Notă importantă: dacă stocați ceva în tag-ul tEditează proprietate ca un indicator, sunteți responsabil pentru eliberarea conținutului său.

Pentru informarea dumneavoastră: deoarece Delphi obiecte într-adevăr sunt indicii pentru cazuri de clasă, puteți stoca obiecte în proprietate Tag. Vă amintiți că acest lucru este necesar pentru a apela o metodă gratuită.

Mă grăbesc să vă oferim trei metode care vă permit să utilizați etichete pentru linii de acces pentru a transmite de la o aplicație la alta.

  1. În cazul în care linia dvs. nu se va schimba, puteți crea o resursă șir în Atelierul de resurse (sau echivalent) și utiliza eticheta ca un index la un tabel de siruri de caractere.
  2. Utilizați TIniFile, creați o secțiune pentru siruri de caractere și să alocați fiecare linie un nume și număr, și anume .ini fișier ar trebui să aibă o secțiune, cum ar fi acest lucru: Atunci se poate referi la ele, după cum urmează:

  • Pune-siruri de caractere într-un fișier care însoțește fiecare linie nouă. Apoi, le puteți citi în TStringList. Apoi Tag'i devin indicii în acest StringList:

    Toate cele trei metode de lucru în Delphi, pune-mă, cred că aceasta este cea mai simplă soluție.