Home › Fóruns › Dúvidas e Problemas relacionados ao UserControl ShowDelphi Edition › Erros userControl
Boa tarde.
Estou começando a utilizar o userControl no Delphi Berlin e estou me deparando com o seguinte erro ” conversion error from string “13/07/2017″ ” (conversão) utilizando o DBExpress ou Firedac.
Esse erro ocorre ao alterar ou criar um novo usuário.
exception class EIBNativeException with message ‘[FireDAC][Phys][FB]
Existe alguma correção prevista?
Grato.
Mais algumas observações.
>> Permite excluir o usuário que esta logado no sistema.
>> Quando tenta excluir um usuário o sistema não apresenta nenhum aviso que deu erro, porem limpa
>> Não esta sendo possível alterar senha
> Acesso(Permissões de usuário) :
>> Ao clicar para expandir a raiz esta mercando/desmarcando o acesso que esta selecionado, quando esta selecionado um acesso e clica em qualquer parte da janela (parte branca onde contem os acessos) o sistema esta marcando/desmarcado o acesso selecionado.
> LOG:
>> Na tela de log a coluna “Nível” apresenta um fundo preto, conforme é movimentado o a seleção da linha (seta ou scroolbar) a parte preta fica com um lado branco, as vezes fica todo branco e da para ler que esta escrito atras do ícone a palavra “Nivel”.
Obrigado Bruno por informar, vamos tentar ver para corrigir os problemas mencionados.
Bom dia.
Foi possível identificar os problemas?
Olá Bruno, estamos na corrida aqui ocupados com projetos de clientes.
Acredito que todos programadores sempre estão “apertados” em tempo.
Pode ser que demore Bruno para a gente ir implementando.
Caso você fazer estes ajustes, podemos incorporar ao projeto sem problemas e irá encorajar outros a também ajudarem.
Bom dia amigos.
Gostaria de parabenizar pelo excelente trabalho realizado junto a comunidade delphi. Queria passar um probleminha que está ocorrendo com o UserControl. Estou usando o Delphi Tokyo e, instalei o componente sem problemas, porém, quando vou CADASTRAR um USUÁRIO, ocorre um erro seguido da seguinte mensagem: Invalid pointer operation.
Obs: Somente ocorre esse erro quando cadastrar um novo usuário, na alteração esse erro não ocorre. Alguma dica pra resolver esse problema?
Desde já agradeço a atenção e mais uma vez parabenizá-los.
Boa tarde pessoal,
Tenho uma duvida tenho um projeto e estou usando o usercontrol porem no ele executa normalmente só que na tela de login ele aprece junto com a tela do sistema ao fundo. Como faço para retirar esta tela de fundo?
Obrigado pela atenção DEUS abençoe!!!
Pessoal Bom dia!
Está dando erro no “pUCFrame_User.pas” na “procedure TUCFrame_User.BtPassClick(Sender: TObject);”, abaixo.
Exatamente nesta linha: //FreeAndNil(FormSenha);
O problema é que o FormSenha já é destruído no OnClose dele com Action:= caFree.
Espero ter ajudado.
procedure TUCFrame_User.BtPassClick(Sender: TObject);
begin
if FDataSetCadastroUsuario.IsEmpty then
Exit;
FormSenha := TSenhaForm.Create(Self);
TSenhaForm(FormSenha).Position := FUsercontrol.UserSettings.WindowsPosition;
TSenhaForm(FormSenha).FUsercontrol := FUsercontrol;
TSenhaForm(FormSenha).Caption :=
Format(FUsercontrol.UserSettings.ResetPassword.WindowCaption,
[FDataSetCadastroUsuario.FieldByName(‘Login’).AsString]);
if TSenhaForm(FormSenha).ShowModal = mrOk then
Begin
(*
if (Assigned(FUsercontrol.MailUserControl)) and (FUsercontrol.MailUserControl.SenhaForcada.Ativo ) then
try
FUsercontrol.MailUserControl.EnviaEmailSenhaForcada(
FDataSetCadastroUsuario.FieldByName(‘NOME’).AsString ,
FDataSetCadastroUsuario.FieldByName(‘LOGIN’).AsString,
TSenhaForm(FormSenha).edtSenha.Text ,
FDataSetCadastroUsuario.FieldByName(‘EMAIL’).AsString,
”);
except
on E : Exception do FUsercontrol.Log(e.Message, 0);
end;
*)
FUsercontrol.ChangePassword(FDataSetCadastroUsuario.FieldByName(‘IDUser’)
.AsInteger, TSenhaForm(FormSenha).edtSenha.Text);
End;
//FreeAndNil(FormSenha); Não pode, já esta destruindo no form –Levi
end;
Pessoal,
Encontrei um erro na “IncUser_U.pas”, na “procedure TfrmIncluirUsuario.btGravarClick(Sender: TObject);” abaixo:
Exatamente na linha //FreeAndNil(FormSenha);.
O FormSenha está sendo destruído no OnClose dele com Action:= caFree;
Espero ter ajudado.
procedure TfrmIncluirUsuario.btGravarClick(Sender: TObject);
var
vNovaSenha: String;
vNome: String;
vLogin: String;
vEmail: String;
vUserExpired: Integer;
vPerfil: Integer;
vPrivilegiado: Boolean;
begin
if ComboPerfil.KeyValue = NULL then
begin
ShowMessage(‘Falta Informar o Perfil’);
Exit; // Cleilson Sousa
end;
btGravar.Enabled := False;
with FUserControl do
if not FAltera then
begin // inclui user
if Self.FUserControl.ExisteUsuario(EditLogin.Text) then
begin
MessageDlg
(Format(FUserControl.UserSettings.CommonMessages.UsuarioExiste,
[EditLogin.Text]), mtWarning, [mbOK], 0);
Exit;
end;
FormSenha := TSenhaForm.Create(Self);
TSenhaForm(FormSenha).Position := UserSettings.WindowsPosition;
TSenhaForm(FormSenha).FUserControl := FUserControl;
TSenhaForm(FormSenha).Caption :=
Format(FUserControl.UserSettings.ResetPassword.WindowCaption,
[EditLogin.Text]);
if TSenhaForm(FormSenha).ShowModal <> mrOk then
begin
btGravar.Enabled := True;
Exit;
end;
vNovaSenha := TSenhaForm(FormSenha).edtSenha.Text;
vNovoIDUsuario := GetNewIdUser;
vNome := EditNome.Text;
vLogin := EditLogin.Text;
vEmail := EditEmail.Text;
//FreeAndNil(FormSenha);
Pessoal,
Novamente colaborando com o grupo.
Um pequeno inconveniente na “pUCFrame_Log.pas” faz com que o Campo NIVEL fique com o texto por trás da figura que o representa na “procedure TUCFrame_Log.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);”
Solução:
procedure TUCFrame_Log.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
TempImg: Graphics.TBitmap;
FData: System.TDateTime;
TempData: String;
begin
if DSLog.IsEmpty then
Exit;
if UpperCase(Column.FieldName) = ‘NIVEL’ then
begin
if Column.Field.AsInteger >= 0 then
begin
DBGrid1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2,
”); //Incluir esta linha soluciona o problema.
TempImg := Graphics.TBitmap.Create;
ImageList1.GetBitmap(Column.Field.AsInteger, TempImg);
DBGrid1.Canvas.Draw((((Rect.Left + Rect.Right) – TempImg.Width) div 2),
Rect.Top, TempImg);
FreeAndnil(TempImg);
Boa tarde,
e parabéns pelo projeto.
Foi configurado para menus não ficarem invisíveis, mas ao trocar de Usuário logado (log off) os menus continuam visíveis porém desabilitados.
Quando acessa com Usuário tem não tem todas as pemissões, só são exibidos menus que o mesmo tem acesso, mas se acessar fazendo (log off) aí neste caso os menus que o Usuários nao tem acesso são exibidos desabilitados.
abraços.
A partir de janeiro de 2018, vamos verificar para adicionar as correções postadas. Agora no final de ano esta uma correria, mas já estou me planejando para colocar isto no repositório.
Enquanto, agradeço a todos pelas colaborações e em especial levi.ribeiro, pelos soluções postadas.
Todos estes itens reportados por Bruno Cavalcanti já foram corrigifos.
>> Permite excluir o usuário que esta logado no sistema.
>> Quando tenta excluir um usuário o sistema não apresenta nenhum aviso que deu erro, porem limpa
>> Não esta sendo possível alterar senha
> Acesso(Permissões de usuário) :
>> Ao clicar para expandir a raiz esta mercando/desmarcando o acesso que esta selecionado, quando esta selecionado um acesso e clica em qualquer parte da janela (parte branca onde contem os acessos) o sistema esta marcando/desmarcado o acesso selecionado.
> LOG:
>> Na tela de log a coluna “Nível” apresenta um fundo preto, conforme é movimentado o a seleção da linha (seta ou scroolbar) a parte preta fica com um lado branco, as vezes fica todo branco e da para ler que esta escrito atras do ícone a palavra “Nivel”.
Utilizo o UserControl há muitos anos já, e sempre sem problemas.
Porém, de umas 3 semanas para cá, ao incluir mais rotinas no menu, o UC vem dando problemas.
Já fiz um gbak/restore no banco e não adiantou.
O que está acontecendo é o seguinte:
* vou ao gerenciamento de usuários e libero para todo um perfil um determinado item do menu
* faço a mudança de usuário (sem sair do sistema) e o menu está liberado.
* Saio do sistema e entro novamente e aquela opção está desativada.
* Vou ao gerenciamento de usuários, perfil e vejo a permissão e lá aponta como liberada.
Já testei com alguns perfis diferentes, mas mesmo clicando em LIBERAR (para liberar tudo) o problema continua.
Estou utilizando o Delphi 7 (ainda) e o UserControl Versao 2.32 RC1.
Tria como eu zerar o Banco de Dados do UC? Posso simplesmente apagá-lo para que o componente gere outro?
Olá Roberto.
Pode ser que seja uma versão desatualizada encontrada na net.
Nos estamos utilizando a versão mantida pela comunidade.
Você pode baixar ela aqui:
https://github.com/infussolucoes/usercontrol-sd
Inclusive há um instalador, para facilitar o trabalho.
A princípio esta compatível com Delphi 7.