Při změně velikosti… Při změně velikosti… Při změně velikosti… Při změně velikosti…

Automaticky přeloženo z Deepl

Zajímá vás, jak vytvořit pěkné a dynamické uživatelské rozhraní? Obvykle se při změně velikosti formuláře automaticky změní velikost objektů formuláře, jejichž vlastnosti horizontální nebo vertikální velikosti jsou nastaveny na pohyb nebo růst. V některých případech (např. při jemnější správě uživatelského rozhraní) se vývojáři rozhodnou řídit velikost a polohu objektů formuláře programováním. Za tímto účelem kontrolují událost „on resized“, která se spouští v rámci metody formuláře. Co se však stane, když formulář obsahuje jeden nebo více dílčích formulářů? Na mnoha úrovních? V tomto příspěvku na blogu najdete odpovědi!

Podformuláře a podformuláře a…

Správa objektů dílčích formulářů při změně velikosti „rodičovského“ objektu dílčího formuláře se může zdát složitá, ale není! Lze to provést buď pomocí příkazu Execute method in subform, nebo změnou přidružené hodnoty objektu podformuláře, po níž následuje – uvnitř podformuláře- správa generované události on bound variable change.

Od verze 4D v18 je to ještě jednodušší! Událost on resize můžete spravovat přímo v metodě podformuláře! Mnohem pohodlnější, logičtější a jednodušší! Tato událost se spustí pokaždé, když se v hlavním formuláři změní velikost objektu podformuláře. K tomu může dojít, když:

  • je změněna velikost hlavního formuláře (stejně jako objektu dílčího formuláře). To je nejzřejmější případ.
  • rozdělovač změní výšku nebo šířku objektu dílčího formuláře. Není to tak zřejmé, ale stojí to za zmínku.
  • velikost objektu dílčího formuláře je změněna programováním pomocí příkazu OBJECT SET COORDINATES. Tento případ je ještě méně zřejmý, nezapomeňte na něj 🙂

Závěr

Pokud již takovéto scénáře ve své aplikaci zvládáte, můžete zvážit zjednodušení kódu (Nebo také ne! „Když to není rozbité, neopravuj to“). Ale pro budoucí vývoj toto zjednodušení správy událostí jistě oceníte!

Roland Lannuzel
- Product Owner & 4D Expert - Po studiu elektroniky se Roland věnoval průmyslovým IT jako vývojář a konzultant, který vytvářel řešení pro zákazníky s různými databázemi a technologiemi. Koncem 80. let se zamiloval do 4D a používal jej při psaní podnikových aplikací, které zahrnovaly účetní, fakturační a e-mailové systémy. nakonec se připojil ke společnosti v roce 1997 a Rolandův cenný přínos zahrnuje návrh specifikací, testovacích nástrojů, demoverzí a také školení a přednášky pro komunitu 4D na mnoha konferencích. Nadále aktivně utváří budoucnost 4D definováním nových funkcí a nástrojů pro vývoj databází.