Fórum Carregar combobox com ClientDataSet #426157
15/10/2012
0
To usando MySql com ClientDataSet. Acontece o seguinte: Ao abrir o form de Cadastro e tentar carregar a combobox ou mesmo dar enter para mudar de campo, ta dando:
Dataset not in edit or insert mode. Não quero inserir ou editar, por enquanto, apenas preencher a combobox. Preencho com esse código:
procedure TfrmClientes.CarregarCombo;
var
tempCliente: TCliente; // Aqui estou declarando um obj do tipo da classe
begin
DM.cdsClientes.Close;
cmbClientes.Items.Clear;
DM.cdsClientes.Open;
DM.cdsClientes.First;
while not DM.cdsClientes.Eof do
begin
// neste momento vou instanciar um obj para cada item do combo
tempCliente := TCliente.Create;
tempCliente.Codigo := DM.cdsClientes.fieldbyname('CLI_CODIGO').AsString;
tempCliente.Nome := DM.cdsClientes.fieldbyname('CLI_NOME').AsString;
//desta forma em cada item do cmb você terá um objeto associada na lista
cmbClientes.Items.AddObject(tempCliente.Nome, tempCliente);
DM.cdsClientes.Next;
end;
end;
Não sei mais o que fazer pra tirar esse erro.
Frederico Brigatte***
Curtir tópico
+ 0Post mais votado
15/10/2012
procedure TfrmClientes.btnAdicionarClick(Sender: TObject);
begin
DM.cdsClientes.Open; -> Nessa linha
DM.cdsClientes.append;
dbData_Cad.Text := DateToStr(Date);
// dbNome.SetFocus;
end;
E diz que o campo tem que ter valor. Não sei mais o que fazer.
Frederico Brigatte***
Gostei + 1
Mais Posts
15/10/2012
Gilmar Moraes
Var
I:Integer;
begin
for I := 0 to datasouce1.DataSet.FieldCount - 1 do
Begin
if datasouce1.DataSet.Fields[I].DataType in [ftstring, ftwidestring, ftfixedchar] then
Combobox1.Items.Add(datasouce1.DataSet.Fields[I].FieldName)
end;
lembrando que o ftstring, o ftwwidestring etc, são os tipos de campos de tabela que vão aparecer no combobox..
Gostei + 0
15/10/2012
Gilmar Moraes
procedure TfrmClientes.btnAdicionarClick(Sender: TObject);
begin
DM.cdsClientes.Open; -> Nessa linha
DM.cdsClientes.append;
dbData_Cad.Text := DateToStr(Date);
// dbNome.SetFocus;
end;
E diz que o campo tem que ter valor. Não sei mais o que fazer.
Bom..explia melhor o que vc está querendo..
eu entendi que vc queria um combobox com os campos de tabela dentro, é isso ? ou estou enganado ?
Gostei + 0
15/10/2012
Frederico Brigatte***
Gostei + 0
15/10/2012
Alisson Santos
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)