Rețeaua de magazine - kei - subiecte de vizualizare - splitter în delphi

Iată ce am găsit pe acest subiect:

Splitter a scris: Componenta TSplitter este inserată între două panouri aliniate cu proprietatea Align și permite utilizatorului să treacă frontiera dintre aceste panouri. Secvență de operațiuni pentru introducerea TSplitter






În timpul proiectării, de exemplu, pot fi următoarele. Plasați panoul TPanel (Panel1) pe formular și setați-l la Align = alLeft. Panoul va ocupa partea stângă a ferestrei. Apoi plasați separatorul TSplitter pe formular și setați-l la Align = alLeft. Separatorul va fi apăsat în partea dreaptă a panoului1, care este deja aliniat în aceeași direcție. Divizorul trebuie întotdeauna aliniat numai după ce panoul corespunzător este aliniat, altfel va fi apăsat doar până la marginea formularului. După aceasta, puteți plasa panoul 2 pe formular și îl puteți seta la Align = alClient. Separatorul va fi așezat între panoul1 și panoul2.

Proprietatea ResizeStyle a componentei TSplitter determină comportamentul delimitatorului atunci când este mutat de către utilizator. Implicit, această proprietate este rsPattern. Aceasta înseamnă că, atâta timp cât utilizatorul trage cursorul mouse-ului peste margine, numai șablonul de linie se mișcă, indicând locația mișcării planificate a frontierei. Practic, aceeași imagine este observată dacă setați ResizeStyle = rsLine. Cu ResizeStyle = rsUpdate, în timp ce utilizatorul trage marginea, separatorul se deplasează și dimensiunile panourilor se schimbă tot timpul. Acest lucru este însoțit de o redresare constantă a panourilor și se observă o pâlpâire neplăcută a imaginii. Dacă setați ResizeStyle = rsNone, atunci în timpul tragerii frontierei nu este mutată nici marginea, nici linia care o reprezintă. Este greu de convenabil pentru utilizator.







Proprietatea MinSize a componentei TSplitter stabilește dimensiunea minimă în pixeli a ambelor panouri, între care separatorul este fixat.

Din păcate, în versiunile Delphi, mai mici decât Delphi 5, proprietatea MinSize nu funcționează întotdeauna corect. Delphi 5 a introdus o nouă proprietate a componentei Splitter - AutoSnap. Dacă este setat la true (implicit), atunci când mutați marginea, pot apărea aceleași probleme, ca și în versiunile minore ale Delphi. Dar dacă AUTOSNAP setat la panourile de frontieră adevărate, permeschenie care depășesc limitele sub care dimensiunea unuia dintre panouri vor fi mai puțin MinSize, pur și simplu blocate. Deci, puteți recomanda întotdeauna setarea AutoSnap la true. Cu toate acestea, acest lucru nu rezolvă toate problemele legate de mișcarea frontierelor panoului, deoarece restricția MinSize se aplică ambelor panouri, granița dintre ele se mișcă, iar în unele cazuri este de dorit să se stabilească separat o diferite dimensiuni minime ale unuia și celălalt panou. Acest lucru se poate face mai ușor prin setarea valorilor corespunzătoare din proprietatea Constrângeri din panouri.

Componenta TSplitter are un eveniment OnMoved care are loc după încheierea mișcării de frontieră. În cazul unui eveniment care poate fi manipulat de acest eveniment, puteți furniza, dacă este necesar, comanda plasării componentelor pe panouri ale căror dimensiuni s-au schimbat: mutați anumite etichete, redimensionați componente etc.

Apropo, puteți închide subiectul!

Kurt Cobain pentru totdeauna

Cine este online

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat și 0 vizitatori







Articole similare

Trimiteți-le prietenilor: