[ Pobierz całość w formacie PDF ]
.UkazujÄ…ce siÄ™ na nim napisy sÄ… tytuÅ‚ami(Caption) trzech etykiet zakotwiczonych w specyficzny sposób.Górna etykieta(HistoryLabel) zakotwiczona jest u lewej, górnej i prawej krawÄ™dzi panelu  tÅ‚a, dziÄ™ki czemurozciÄ…ga siÄ™ zawsze w poziomie na caÅ‚y obszar wyÅ›wietlania  generalnie jeżeli kontrolkazakotwiczona jest u przeciwlegÅ‚ych krawÄ™dzi swej kontrolki macierzystej, to może ona ulegaćrozciÄ…ganiu lub kurczeniu, gdy kontrolka macierzysta zmienia swe rozmiary w odpowiednimkierunku.Dolna etykieta (LCDScreen) zakotwiczona jest u lewej, dolnej i prawej krawÄ™dzipanelu  tÅ‚a; nie zakotwiczyliÅ›my jej u górnej krawÄ™dzi, by jej wysokość nie ulegaÅ‚a zmianie, gdyw czasie projektowania zmienimy wysokość panelu  tÅ‚a (w czasie wykonania wysokoÅ›citej zmienić nie sposób, ze wzglÄ™du na zakotwiczenie panelu  tÅ‚a u wszystkich krawÄ™dzi paneluLCDPanel).Notabene ze wzglÄ™du na to, iż panel  tÅ‚o nie może w czasie wykonania zmieniać swej wysokoÅ›ci,nie jest potrzebne żadne zakotwiczenie etykiet w pionie; ich zakotwiczenie u wszystkichprzylegÅ‚ych krawÄ™dzi panelu  tÅ‚a podyktowane zostaÅ‚o wyÅ‚Ä…cznie wygodÄ… na etapieprojektowania aplikacji.Etykieta wyÅ›wietlajÄ…ca wykÅ‚adnik zakotwiczona zostaÅ‚a u prawej i dolnej krawÄ™dzi panelu  tÅ‚a(zgodnie z uwagÄ… w poprzednim akapicie zakotwiczenie u dolnej krawÄ™dzi ma znaczenie jedyniew czasie projektowania aplikacji).Widoczność etykiety wykÅ‚adnika regulowana jest w ciekawysposób  jest ona albo zasÅ‚oniÄ™ta przez etykietÄ™ LCDScreen, albo odsÅ‚oniÄ™ta, zależnie odszerokoÅ›ci tejże etykiety.Sama zmiana szerokoÅ›ci etykiety LCDScreen może jednak niewystarczyć  dla kontrolki zakotwiczonej poziomo (tj.jednoczeÅ›nie u lewej i prawej krawÄ™dzi)zmiana jej szerokoÅ›ci może powodować przesuniÄ™cie jej pionowych krawÄ™dzi.To, która krawÄ™dzzostanie przesuniÄ™ta, zależy od poziomego wyrównania kontrolki: aby przesuniÄ™ta zostaÅ‚a prawakrawÄ™dz (bez naruszenia pozycji lewej krawÄ™dzi), kontrolka musi być wyrównana lewostronnie,zatem na czas odsÅ‚aniania etykiety wykÅ‚adnika wyrównanie takie trzeba wymusić w stosunku doetykiety LCDScreen, a nastÄ™pnie przywrócić jej poprzednie wyrównanie:TAlign LCDSCreenAlign=LCDScreen->Align;LCDScreen->Align = alLeft;LCDScreen->Width = LCDScreen->Width - ExponentLabel->Width;LCDScreen->Align = LCDSCreenAlign; W oryginale autor pisze o wÅ‚aÅ›ciwoÅ›ci Alignment, co jest zupeÅ‚nie bez sensu, bo wÅ‚aÅ›ciwość tadecyduje o wyrównaniu tekstu wewnÄ…trz etykiety, nie zaÅ› samych granic etykiety, z którymizwiÄ…zane jest kotwiczenie.Autorowi na pewno chodziÅ‚o o Align, a poÅ›piech zrobiÅ‚ swoje.Identyczny efekt uzyskać można jednak jeszcze proÅ›ciej, mianowicie zapamiÄ™tujÄ…c poÅ‚ożenielewej krawÄ™dzi etykiety LCDScreen przed zmianÄ… jej rozmiarów i przywracajÄ…c je po zmianie:int LCDScreenLeft = LCDScreen->Left;LCDScreen->Width = LCDScreen->Width - ExponentLabel->Width;LCDScreen->Left = LCDScreenLeft;Mechanizm kotwiczenia bywa szczególnie użyteczny w wielu różnych sytuacjach  przykÅ‚ademtakiej sytuacji może być rozmieszczenie przycisków w oknach dialogowych mogÄ…cych zmieniaćswe rozmiary.W cytowanym już projekcie Panels.bpr na panelu Panel2 (niebieskim)znajdujÄ… siÄ™ dwa przyciski TBitBtn, zakotwiczone u lewej krawÄ™dzi panelu.Gdy zmienia siÄ™szerokość formularza, zmienia siÄ™ również szerokość niebieskiego panelu, a obydwa przyciskipozostajÄ… przy jego lewej krawÄ™dzi.JeÅ›li chodzi o projekt Panels.bpr, to w oryginale mowa jest o czerwonym panelu Panel5 i nanim też znajdujÄ… siÄ™ oryginalnie obydwa przyciski, panel ten nie zmienia jednakże swoichrozmiarów, wiÄ™c sposób zakotwiczenia przycisków w ogóle siÄ™ nie ujawnia.ZmodyfikowaÅ‚emwiÄ™c projekt, przenoszÄ…c przyciski na panel niebieski.Ograniczenia swobody zmiany rozmiarów  wÅ‚aÅ›ciwośćConstraintsZmiana rozmiarów kontrolki ma zazwyczaj sens jedynie w pewnych granicach, w każdym raziedobrze jest tÄ™ zmianÄ™ kontrolować.Jednym z elementów takiej kontroli sÄ… ograniczenia (jedno- lubobustronne) na wysokość i (lub) szerokość kontrolki.Za ograniczenia te odpowiedzialna jestwÅ‚aÅ›ciwość Constraints, która  sama bÄ™dÄ…c klasÄ…  zawiera wÅ‚aÅ›ciwoÅ›ci: MaxHeight,MaxWidth, MinHeight, MinWidth okreÅ›lajÄ…ce (zgodnie ze swymi nazwami) maksymalne iminimalne wartoÅ›ci wysokoÅ›ci i szerokoÅ›ci.We wspominanym już wielokrotnie projekcie Panels.bpr wykorzystaliÅ›my tÄ™ wÅ‚aÅ›ciwość dokontrolowania rozmiarów formularza głównego tak, by nie staÅ‚ siÄ™ on zbyt maÅ‚y.Minimalnawysokość (MinHeight) panelu Panel1 ustawiona zostaÅ‚a na 300; minimalna szerokość(MinWidth) panelu Panel2 ustawiona zostaÅ‚a na takÄ… samÄ… wartość  a to oznacza, iż obszarklienta formularza zawierajÄ…cego te panele nie może mieć rozmiarów mniejszych niż 300 × 300pikseli.Ustawienie tych wartoÅ›ci bezpoÅ›rednio w formularzu głównym(Form1->Constraints) nie daÅ‚oby takich samych rezultatów, bowiem ograniczenia teodnosiÅ‚yby siÄ™ do formularza jako caÅ‚oÅ›ci, nie zaÅ› tylko jego obszaru klienta.Projekt kalkulatora również korzysta z kilku ograniczeÅ„ [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • funlifepok.htw.pl
  •