Tak jen pro uplnost k tomu mému examplu: podle mne je obecne dobre mit vlastni komponenty, i kdyby to bylo jen
TMyCoolQuery = class(TFDQuery)
Má to tu výhodu, že pokud vyměníš komponenty, třeba ADO za FireDAC nebo za UniDAC, tak staci doimplementovat chybejici chovani a OK.
A protože mám vlastní komponenty, tak s tím mohu čarovat.
To SetActive je zapisova metoda pro property TDataSet.Active, a funguje to tak, že během načítání formuláře je nastaveno csReading ve stavu komponenty, a konkretně SetActive to využívá tak, že si poznačí stav Active a až je komponenta načtena, tak tuto zapamatovanou hodnotu použije. No a já jsem udělal to, že jsem tento stav odchytil a manualne ho nastavil na False, tj. jako by se z DFM vzdy nacetlo False. Nezkousel jsem, ale podle implementace SetActive v TDataset to tímto způsobem funguje.
Jinak už dlouho vytvářím DB komponenty za běhu, takže takové problémy s Active neřeším.