tiriciasf 0 Denunciar post Postado Janeiro 28, 2009 Boa noite Pessoal!!!! Preciso de uma ajuda, gostaria de saber como fazer para incluir dados no comboBox em tempo de execusao, como por exemplo num cadastro de Pneu, onde digitamos a marca, dimensao, construção, onde o usuario digita a contruçao do Pneu Ex:Diagonal Liso e ele ja fica salvo no comboBox, assim qndo tiver outro pneu com o mesmo dado nao precisa digitar novamente aparece como se estivese incluido no Itens do componente, caso contrario o usuario digita um novo e ele ja fica salvo no ComboBox. Fico no aguardo. Grata. Compartilhar este post Link para o post Compartilhar em outros sites
Maikel Scheid 1 Denunciar post Postado Janeiro 28, 2009 Olá Bom, não sei se isso seria a forma mais correta, mas baseado nos componentes da dbExpress eu faria o seguinte processo: Ao abrir o form de cadastro, ou quando clica no botao, usaria um componente ClientDataSet ou SQLDataSet para pesquisar os nomes já cadastrados, percorrendo todos os registros e jogando-os ao combo. Usaria o código através da declaraçao desta procedure, veja: procedure TForm1.PreencheCombo; begin try ClientDataSet1.First; while not ClientDataSet1.Eof do begin ComboBox1.Items.Add(ClientDataSet1.FieldByName('FirstName').AsString); ClientDataSet1.Next; end; ComboBox1.ItemIndex := 0; except end; end; Depois, chamaria este procedimento no OnShow do Form... clique do botão ou qualquer outro evento disparado antes do cadastro, assim: procedure TForm1.FormCreate(Sender: TObject); begin PreencheCombo(); end; Por último, verificaria no OnExit do ComboBox se o nome que está carregado foi digitado ou selecionado. Caso tenha sido digitado, faria um insert armazenando-o para a próxima vez que o cadastro fosse realizado, assim: procedure TForm1.ComboBox1Exit(Sender: TObject); begin if not ClientDataSet1.Locate('FirstName',ComboBox1.Items.Strings[ComboBox1.ItemIndex],[loCaseInsensitive]) then begin ClientDataSet1.Insert; ClientDataSet1.FieldByName('FirstName').Value := ComboBox1.Items.Strings[ComboBox1.ItemIndex]; ClientDataSet1.Post; end; end; Veja se isso consegue esclarecer um pouco sua dúvida.... qualquer coisa, post ai. Att Compartilhar este post Link para o post Compartilhar em outros sites
tiriciasf 0 Denunciar post Postado Janeiro 28, 2009 Vou testar, obrigada!!!! Compartilhar este post Link para o post Compartilhar em outros sites
tiriciasf 0 Denunciar post Postado Abril 9, 2009 Maikel estou testando o código que você me passou, mas esta dando o seguinte erro, Project Principal.exe raised Exception class EdatabaseError with message 'TBCOMBOMARCA:Fild 'FirtName' no found.Process stopped.Use step or rum to continue. segue abaixo o codigo que estou usando. procedure TFormCadPneus.preenche_comboMarca; begin try DMCONSULTAPNEUS.TBCOMBOMARCA.Open; DMCONSULTAPNEUS.TBCOMBOMARCA.First; while not DMCONSULTAPNEUS.TBCOMBOMARCA.Eof do begin DBComboBoxMarca.Items.Add(DMCONSULTAPNEUS.TBCOMBOMARCA.FieldByName('FirstName').AsString); DMCONSULTAPNEUS.TBCOMBOMARCA.Next; end; DBComboBoxMarca.ItemIndex := 0; except end; end; Fico no aguardo de uma resposta. Grata. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Abril 9, 2009 Troque o "Firstname" pelo nome do campo da sua tabela que quer carregar no combo. []'s Compartilhar este post Link para o post Compartilhar em outros sites