Fórum Problema com Radiogroup, Speedbuttons e outros... #371200
14/06/2009
0
[b:2cece8dc2c]Vou explicar o melhor possivel para que possam compreender e me ajudar...[/b:2cece8dc2c]
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
[b:2cece8dc2c]Agradeço desde já a ajuda em qualquer item do problema![/b:2cece8dc2c]
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
[b:2cece8dc2c]Agradeço desde já a ajuda em qualquer item do problema![/b:2cece8dc2c]
Soninhamax
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)