Fórum dbcombo box - campo value #315768
12/03/2006
0
no campo SEXO eu tenho as opções MASCULINO - FEMININO
porém quando for salvar as informações no banco de dados, eu gostaria que fosse somente M - F
como faço?
Rafael Santana
Curtir tópico
+ 0Posts
12/03/2006
Mdm
[b:8398f77cce]OnGetText[/b:8398f77cce]
if (Sender.Value = ´M´) then Text := ´Masculino´; if (Sender.Value = ´F´) then Text := ´Feminino´;
[b:8398f77cce]OnSetText[/b:8398f77cce]
if (Text = ´Masculino´) then Sender.Value := ´M´ if (Text = ´Feminino´) then Sender.Value := ´F´
[]s
Gostei + 0
12/03/2006
Marco Salles
Não ha problema , isto e facil de ser realizado.. Voce deve usar o evento
onsettex do campo (no caso parece ser estado civil)
OnSetText é o momento que nos temos a oportunidade de pegar a informação que esta vindo da tela do usuario(Controle data Ware No Caso o DbCombobox) antes que esta valor chegue de fato ao TFiled..
Nesse momento podemos fazer testesde validaçoes , formataçoes , ocultar determinados valores gerar exceçoes e assim vai...
pode tentar assim
procedure TForm1.Table1TelefoneSetText(Sender: TField; const Text: String); begin try if text = ´Masculino´ Then sender.AsString:=´M´ else if text = ´Feminino´ then sender.AsString:=´F´ else raise exception.create (´Error´); //gera uma exceção... //pode aqui gerar uma exceção com raise //isto é opcional , se seu DbCombobox tiver sempre //o mesmo valores fixos , acho que não sera necessário except on e:exception do begin //fazer o que tem que fazer..como apresntera mensagem , //corriigir se quiser , efeito sonoro e por ai vai end; end;
Gostei + 0
12/03/2006
Adriano Santos
if (Sender.Value = ´M´) then Text := ´Masculino´; if (Sender.Value = ´F´) then Text := ´Feminino´;
if (Text = ´Masculino´) then Sender.Value := ´M´ if (Text = ´Feminino´) then Sender.Value := ´F´
Existem diversas maneiras de fazer isso. A dica do [b:227d2aeb52]MDM[/b:227d2aeb52], acredito que seja a mais simples, porém você pode gravar direto no campo também:
case ComboBox1.ItemIndex of 0: Query.FieldByName(´CAMPO_SEXO´).AsString := ´M´; 1: Query.FieldByName(´CAMPO_SEXO´).AsString := ´F´; -1: ShowMessage(´O combobox não foi selecionado.´); end;
Como disse, existem diversas maneiras. Esta foi só pra ilustrar.
Gostei + 0
12/03/2006
Marco Salles
OnSetTexte para gravar no referido formato e OnGetText para Ler no referido formato. Mas para usar este eventos , devemos usar componetes DataWare(Dbcombobox por exemplo) associados ao campo ,para não ter ficar usando digitação extra .
Gostei + 0
12/03/2006
Rafael Santana
COMO FAÇO PARA DAR UM SETFOCUS em um campo do DBGRID?
Gostei + 0
12/03/2006
Marco Salles
entre outros pode ser fazer
d
bgrid1.SelectedIndex:=valorDaColunaQueseQuer //começa do zero
porem para voce ver o foco é necessario que algumas configuraçoes da Grid seje determinadas.. Por exemplo , se voce tiver a grid com os campos todo azulado voce não vera nada... Voce deve deixar a grid com apenas um campo azulado , para voce ver o efeito da instrução
em outras palavras : No objeto inspector em Options faça
DgAlwaysShowselect:=True e dgRowselect:=False; e
boa sorte
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)