Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - zrušenie nastavení z "odchádzajúceho" TabSheet pri prepnutí na nový TabSheet

Na formulári mám PageControl. Ten obsahuje niekoľko TabSheet a na každom TabSheet je jeden DBGrid. V rámci aplikácie mám jeden DataSource, ktorý chcem podľa potreby priraďovať DBGridom a 2 Query. Jeden je pracovný a druhý pre zobrazenie v DBGrid. Mám takýto problém:

Pri prepnutí TabSheet potrebujem zrušiť prepojenie DBGridu, ktorý bol doteraz zobrazený, urobiť zmeny a priradiť nový DBGrid. Tejto postupnosti odpovedá TabSheet.OnExit, PageControl.OnChange a TabSheet.OnEnter. Zistil som však, že OnExit sa nikidy nevyvolá a miesto toho sa mi 2x zavolá OnChange a potom sa 1x zavolá OnEnter. Ako mám teda dosiahnuť zrušenie prepojenia DBGridu s DataSource, keď sa pri prepnutí nevyvolá OnExit?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Použij událost TPageControl.OnChange - vypukne při vlezení do ucha, TPageControl.ActivePage ukazuje… nový
Rce 15.02.2007 22:16
Rce
Lenže, ak nastavím nový SQL príkaz, tak ak budem mať v DBGride definované názvy stĺpcov a nebude sed… nový
msx. 15.02.2007 22:34
msx.
Na každý list (TTabSheet) objektu TPageControl můžeš přece nacpat mříž, jakou potřebuješ - klidně na… nový
Rce 15.02.2007 23:20
Rce
Vidíš, to nie je zlý nápad. Vzájomné posúvanie by nebolo na zahodenie. poslední
msx. 15.02.2007 23:51
msx.

Použij událost TPageControl.OnChange - vypukne při vlezení do ucha, TPageControl.ActivePage ukazuje na ucho, do kterého se právě vlezlo. Pro opuštění ucha použij TPageControl.OnChanging - vypukne při odchodu z ucha, TPageControl.ActivePage ukazuje na právě opouštěné ucho. Já osobně bych s mřížema nic nedělal extra. Na každém uchu bych si je nastavil podle potřeby a když uživatel překlikne na jiné ucho, nechal bych ty mříže v pozadí osudu, ať si žijou jak chtějí - obvykle nic špatného neprovedou.

Na každý list (TTabSheet) objektu TPageControl můžeš přece nacpat mříž, jakou potřebuješ - klidně na každý list jinou a klidně svázanou s jinou tabulkou nebo jiným SQL. Tedy co list, to jiná mříž. Tím se nebudou ovlivňovat. Záleží co děláš. Někdy je žádoucí, aby se mříž na jiném listě (spojená se stejnou tabulkou/SQL) ale s jinými sloupci pohybovala stejně.

Zpět do poradny Odpovědět na původní otázku Nahoru