Vou explicar o melhor possivel para que possam compreender e me ajudar...
1ºEu criei um cadastro, coloquei os EDITs, o RADIOGROUP e o COMBOBOX no PANEL de cima e no PANEL de baixo coloquei os SPEEDBUTTONs.
Coloquei um comando pra ao sair, por exemplo do EDIT, pressionando enter vá para o próximo campo
ex:
procedure TFrmCadCli.EdtCodigoKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13
then edtRazao.SetFocus;
end;
o problema é, tenho um MASKEDIT e depois dele vem o RADIOGROUP. Não consigo com esse comando mandar o foco para o RADIO, o máximo que consegui foi:
procedure TfrmCadCli.mskTelKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13
then rdbSexo.ItemIndex := 0;
end;
O máximo que faz é marcar o item mas o foco continua no MASKEDIT,só vai se depois disso eu pressionar TAB. E por sequência (do TAB ORDER) depois do RADIO vem o PANEL com os SPEEDBUTTONS e não consigo fazer com que o 1°botão receba o foco.
Fiz um comando para que fizesse com que todos os campos fossem de preenchimento obrigatório, e nem tentando mandar o foco do MASKEDIT,sem passar pelo RADIO, direto para o PANEL, o botão não recebe o foco.
ex:
procedure TfrmCadCli.mskTelExit(Sender: TObject);
begin
if not (ActiveControl is TButton)
then begin
if mskTel.text = '( ) - '
then begin
MessageDlg('Campo obrigatório', mtError, [mbOK],0);
mskTel.SetFocus
end else
pnlBotoes.SetFocus;
end;
end;
2º Eu fiz uma PROCEDURE (Limpar) para limpar todos os campos e uma FUNCTION (Integridade) para verificar se todos os campos obrigatórios foram preenchidos, caso o usuário no meio do caminho tente gravar os dados sem preencher tudo.
No botão gravar fiz o seguinte :
procedure TfrmCadCli.spbGravarClick(Sender: TObject);
begin
if Integridade
then begin
ShowMessage('Dados gravados com sucesso!');
Limpar;
end else
showmessage('Todos os campos são obrigatórios');
end;
Problema 1 - na função integridade,logo abaixo, estou com dificuldade de criar um comando para que verifique se o RADIO foi marcado:
function TfrmCadCli.Integridade: Boolean;
begin
if (trim (EdtCodigo.text) <> '') and (trim (edtNome.text) <> '') and (trim (CmbUF.text) <> '') and (trim (mskNascimento.text) <> '') and (trim (mskTel.text) <> '')
then Result := True
else Result := False;
end;
Problema 2 - Depois de executar o programa, preencher os dados e clicar no botão gravar acontece o seguinte:
a)Ele exibe a mensageem 'Dados gravados com sucesso!', clico em ok e ele me exibe a mensagem 'Campo Obrigatório', e o foco, como programado na PROCEDURE LIMPAR, não volta para o primeiro campo, ele está permanecendo no RADIOGROUP.
b)Depurando o programa e entrando dentro desta PROCEDURE notei que todos os campos estão recebendo o valor'inaccesible value'
ex:
edtCodigo.Clear = inaccesible value
Agradeço desde já a ajuda em qualquer item do problema!
Pergunta
Soninhamax
Vou explicar o melhor possivel para que possam compreender e me ajudar...
1ºEu criei um cadastro, coloquei os EDITs, o RADIOGROUP e o COMBOBOX no PANEL de cima e no PANEL de baixo coloquei os SPEEDBUTTONs.
Coloquei um comando pra ao sair, por exemplo do EDIT, pressionando enter vá para o próximo campo
ex:
o problema é, tenho um MASKEDIT e depois dele vem o RADIOGROUP. Não consigo com esse comando mandar o foco para o RADIO, o máximo que consegui foi: O máximo que faz é marcar o item mas o foco continua no MASKEDIT,só vai se depois disso eu pressionar TAB. E por sequência (do TAB ORDER) depois do RADIO vem o PANEL com os SPEEDBUTTONS e não consigo fazer com que o 1°botão receba o foco. Fiz um comando para que fizesse com que todos os campos fossem de preenchimento obrigatório, e nem tentando mandar o foco do MASKEDIT,sem passar pelo RADIO, direto para o PANEL, o botão não recebe o foco. ex: 2º Eu fiz uma PROCEDURE (Limpar) para limpar todos os campos e uma FUNCTION (Integridade) para verificar se todos os campos obrigatórios foram preenchidos, caso o usuário no meio do caminho tente gravar os dados sem preencher tudo. No botão gravar fiz o seguinte : Problema 1 - na função integridade,logo abaixo, estou com dificuldade de criar um comando para que verifique se o RADIO foi marcado:Problema 2 - Depois de executar o programa, preencher os dados e clicar no botão gravar acontece o seguinte:
a)Ele exibe a mensageem 'Dados gravados com sucesso!', clico em ok e ele me exibe a mensagem 'Campo Obrigatório', e o foco, como programado na PROCEDURE LIMPAR, não volta para o primeiro campo, ele está permanecendo no RADIOGROUP.
b)Depurando o programa e entrando dentro desta PROCEDURE notei que todos os campos estão recebendo o valor'inaccesible value'
ex:
edtCodigo.Clear = inaccesible value
Agradeço desde já a ajuda em qualquer item do problema!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.