Autor Téma: Spoločné udalosti pre komponenty na rôznych formulároch  (Přečteno 247 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6035
  • Karma: 44
    • Verze Delphi: W10 + D11
Mám 11 formulárov, na ktorých sú dva komponenty. Tie sa vždy navzájom rovnako ovplyvňujú. Aby som nepísal tieto udalosti na každý formulár, tak som sa rozhodol dať ich do samostatnej jednotky.
Chcel som použiť na class procedure. Aby som nevytváral triedu. Ale tu som narazil na problém, že sa nedostanem ku komponentom na rôznych formulároch.
Riešením je vytvoriť triedu a dané komponenty tam poslať ako parametre.
.
Dá sa to aj bez toho vytvorenia triedy?
Pre všetky formuláre mám vlastného spoločného predka. Možno by sa to dalo realizovať ďalším predkom len pre tieto formuláre. Ale netuším ako.
Komponenty nie sú na rovnakých pozíciách a nemajú rovnako nastavené vlastnosti. Napr. Columns + šírka a výška.
.
Snažím sa robiť veci tak, aby bežali podľa možnosti automaticky. Tým pádom nezabudnem čosi napísať. Nemusím myslieť na nejaký kód.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline jirka52

  • Mladík
  • **
  • Příspěvků: 64
  • Karma: 3
    • Verze Delphi: D2, D5, D6, D2005, D2006, D2009, DXE2,DXE7,D10.2
Re:Spoločné udalosti pre komponenty na rôznych formulároch
« Odpověď #1 kdy: 27-10-2021, 12:07:00 »
Zkus si vytvořit Frame (potomek třídy TFrame) z těchto 2 komponent

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6035
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Spoločné udalosti pre komponenty na rôznych formulároch
« Odpověď #2 kdy: 27-10-2021, 12:30:37 »
TFrame sa vyhýbam. Neviem ako teraz, ale v minulosti s tým bolo viac problémov ako osohu. Skôr by som použil podformulár.
Okrem toho by mi to totálne rozhodilo formuláre. Neviem, či by som to dal nejako rozumne dokopy. Viď prílohu. Červeným sú označené dotknuté komponenty.
Už som sa pustil do riešenia s vytvorením triedy a odoslaním komponentov ako parametre.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.