Vários problemas (importados do To-Do local)
IMPORTANTE! fazer os allowablemainobjectscontainers estarem sempre no mesmo owner do UC (mesmo tform ou mesmo TDataModule)
Isso era necessário porque o UC fazia validações no método Loaded, mas como o método Loaded foi removido o TAllowableMainObjectsContainer pode ficar em qualquer lugar, desde que o método TUserControl.Execute seja executado em um momento em que o TAllowableMainObjectsContainer já esteja disponível. Mensagens de erro serão emitidas para cada propriedade obrigatória não preenchida
MemoryLeak em UUCFrameUsers. Está sendo criado um TDataSet e atribuiído diretamente a um datasource, mas em nenhum momento ele está sendo destruído. Verifique todos os métodos que retornam dataset para saber se eles estão sendo destruidos. Existe um aviso no frame que diz pra não destruir um dataset, que o UC toma conta dele, mas eu acho que isso está errado...
Este problema foi totalmente corrigido! Neste momento não foi detectado mais nenhum Memory Leak, mesmo após acessar todos os frames da tela de usuários
Existem validações de tabelas sendo feitas no CheckRequiredProperties de user control. Mova isso para cada tabela! E crie as validações das outras tabelas, porque atualmente apenas users e rights estão sendo validadas. Possivelmente so precisam destas duas mesmo, verifique;
Todas as validações para todas as tabelas foram criadas
O lock de operacoes de banco está erradamente mantendo o lock ou a liberação de um usuario anterior, ao iniciar a aplicação com o usuario nao se nota, ao trocar de usuario sim. é preciso guardar os eventos originais de cada operacao (insert, delete, update) e recupera-los sempre que se trocar de usuario ApplyAdditionalObjectsRights AssignComponentInstancesFrom. mude o metodo Lock, coloque mais 3 parametros para receber os ponteiros dos metodos insert, delete e update originais e em AssignComponentInstancesFrom ajuste para atribuir os ponteiros, que serao usados em lock
Problema resolvido, mas descobri que há um efeito colateral entre o lock de operações de banco e o TDataSetMonitor. Vou criar um ticket separado para isso
Existem validações de tabelas sendo feitas no CheckRequiredProperties de user control. Mova isso para cada tabela! E crie as validações das outras tabelas, porque atualmente apenas users e rights estão sendo validadas. Possivelmente so precisam destas duas mesmo, verifique;o lock de operacoes de banco está erradamente mantendo o lock ou a liberação de um usuario anterior, ao iniciar a aplicação com o usuario nao se nota, ao trocar de usuario sim. é preciso guardar os eventos originais de cada operacao (insert, delete, update) e recupera-los sempre que se trocar de usuario ApplyAdditionalObjectsRights. AssignComponentInstancesFrom. mude o metodo Lock, coloque mais 3 parametros para receber os ponteiros dos metodos insert, delete e update originais e em AssignComponentInstancesFrom ajuste para atribuir os ponteiros, que serao usados em lock