Secretele casetei de listare

Materialul propus prezintă două moduri în care puteți prezenta date într-o componentă ListBox sub forma mai multor coloane. Această sarcină nu este dificilă și, prin urmare, aș vrea să explic ceva înainte de a citi această pagină.







ListBox - o componentă modestă, care a apărut în Delphi 1.0. Acesta afișează o listă de șiruri de caractere și vă permite să selectați una sau mai multe dintre ele. Cu toate acestea, după cum arată Keith Wood (Keith Wood) în acest articol, această componentă a folosit rareori funcții care pot face ca interfața aplicației dvs. să fie mai informativă.

Vrei vreodată să afișezi o listă în tabel - mai multe coloane de text? Cum să facem coloane egale? Puteți încerca să utilizați spații, dar această metodă nu va funcționa cu fonturi proporționale. Puteți face proprietarul să deseneze și să creeze singur coloanele. Dar nu este nevoie de toate aceste lucruri! ListBox-ul are deja o proprietate care vă va permite să rezolvați această situație.

Proprietatea TabWidth stabilește filele din lista. Ele sunt măsurate în unități ale unei casete de dialog, patru unități sunt egale cu lățimea inimii simbolului. Atunci când această proprietate este setată la 0 (implicită), nu există nici o oprire în tabelă, iar caracterele tabelă sunt afișate ca linii verticale. Setați la o valoare diferită de zero, această proprietate specifică distanța dintre marcajele filelor care sunt distanțate pe întreaga lățime a listei.







Coloane de diferite lățimi

Ce se întâmplă dacă doriți să creați coloane cu lățime variabilă?

Desigur, nu există nicio proprietate care să vă permită să faceți acest lucru cu ușurință, dar acest lucru este ușor de făcut cu codul. Tot ce trebuie să faceți este să trimiteți un mesaj LB_SETTABSTOPS, trecând numărul de file și un pointer la matrice cu pozițiile lor:

Funcția Ridică întoarce indexul ultimului element din matrice. Dacă matricea este indexată de la unu, puteți crește numărul de file prin adăugarea unor elemente noi în matrice.

De asemenea, trebuie să setați proprietatea TabWidth la o valoare diferită de zero, numai în acest caz ListBox este gata să accepte acest mesaj.

Pentru a insera un caracter tab în textul dvs., pur și simplu utilizați caracterul ASCII 9, de exemplu:

O altă caracteristică puțin cunoscută a ListBox este că poate afișa mai multe coloane, merită să le setați numărul în proprietatea Coloane.

Acum, rândurile din lista vor fi aranjate după tipul coloanelor ziarului, cu o bară de derulare orizontală care apare dacă este necesar. Linii care nu se încadrează în spațiul rezervat acestora sunt tăiate.

Ambele aceste caracteristici schimbă pur și simplu aspectul listei. Toate celelalte funcții ale componentei funcționează ca de obicei.

Așadar, Lista noastră modestă are talente ascunse. Am văzut cum să facem o listă cu file utilizând proprietatea TabWidth și mesajul LB_SETTABSTOPS. De asemenea, am văzut cum să creați o listă multicolumnă utilizând proprietatea Coloane. Rețineți acest lucru până la data viitoare când utilizați lista.

Kate Wood este un australian cu sediul în prezent în Statele Unite. Este un programator analist la CCSC, cu sediul în Atlanta și un scriitor tehnic independent. Experiența sa cu produsele Borland își are rădăcinile cu Turbo Pascal pentru CP / M







Articole similare

Trimiteți-le prietenilor: