Fórum TComboBox sumindo com referências de um objeto. #591306
12/02/2018
0
Estou com um problema aqui que já esta me tirando do sério, acho que se alguém já passou por ele vai pode me ajudar.
Programo no Delphi Seattle e quando clico no componente TComboBox para selecionar um tipo, meu objeto perde as referências, no caso ele esta carregado com dados do tipo id, nome, rg, cpf entre outros.
Algum nerd ai que não esta na festanças carnavalescas?
John Andrade
Curtir tópico
+ 0Post mais votado
12/02/2018
cboTipoBairro.Items.AddObject(dm.tblTipBaitipbaiNome.AsString,TObject(dm.tblTipBaiidTipoBairro.AsInteger));
E para recuperar o código do objeto mais ou menos assim:
objTipoBairro.CodTipBai := Integer(cboTipoBairro.Items.Objects[cboTipoBairro.ItemIndex]);
Espero que lhe dê uma luz. Abraço.
Adalberto Brasaca
Gostei + 1
Mais Posts
16/02/2018
John Andrade
<br /><br />
Acontece que o componente TComboBox não faz referência a esta objeto.<br /><br />
Por exemplo:<br /><br />
procedure TF_Cliente.EditClienteTipoEnter(Sender: TObject);<br /><br />
var<br /><br />
ObjClienteTipo: TClienteTipo;<br /><br />
I: Integer;<br /><br />
begin<br /><br />
EditClienteTipo.Clear;<br /><br />
<br /><br />
try<br /><br />
ObjClienteTipo:= ObjClienteTipo.Create;<br /><br />
<br /><br />
try<br /><br />
ObjClienteTipo.ObjListCreate;<br /><br />
ObjClienteTipo.Search(ObjClienteTipo);<br /><br />
<br /><br />
if ObjClienteTipo.FListClienteTipo.Count > 0 then<br /><br />
begin<br /><br />
<br /><br />
for I := 0 to ObjClienteTipo.FListClienteTipo.Count - 1 do<br /><br />
begin<br /><br />
EditClienteTipo.Items.AddObject(TClienteTipo(ObjClienteTipo.FListClienteTipo.Items[I]).no_cliente_tipo, TObject(TClienteTipo(ObjClienteTipo.FListClienteTipo.Items[I]).id_cliente_tipo));<br /><br />
<br /><br />
end;<br /><br />
<br /><br />
end<br /><br />
else<br /><br />
begin<br /><br />
F_Mensagens.ReceberMensagem(''''Atenção!'''' + #13 +<br /><br />
''''Nenhum registro encontrado!'''');<br /><br />
TF_Mensagens.Mensagem(F_Mensagens.ObjMensagem, ''''I'''', [mbOk]);<br /><br />
<br /><br />
end;<br /><br />
<br /><br />
except<br /><br />
on E: Exception do<br /><br />
begin<br /><br />
F_Mensagens.ReceberMensagem(''''Atenção!'''' + #13 +<br /><br />
E.Message);<br /><br />
TF_Mensagens.Mensagem(F_Mensagens.ObjMensagem, ''''E'''', [mbOk]);<br /><br />
<br /><br />
end;<br /><br />
end;<br /><br />
<br /><br />
finally<br /><br />
FreeAndNil(ObjClienteTipo);<br /><br />
<br /><br />
end;<br /><br />
<br /><br />
Esse objeto que você vê no evento OnEnter do TComboBox funciona perfeitamente.<br /><br />
<br /><br />
PROBLEMA:<br /><br />
Tenho um objeto TCliente que quando eu clico no componente TComboBox ele perde as informações.<br /><br />
<br /><br />
Eu já alimentei o objeto TCliente com algumas informações, que quando eu clico no componente como falei ele o objeto perde tipo: no_cliente, tp_conta, nu_rg... Entre outras referências.<br /><br />
<br /><br />
procedure TF_Cliente.btnSaveClick(Sender: TObject);<br /><br />
var<br /><br />
ObjCliente: TCliente;<br /><br />
ObjClienteController: TClienteController;<br /><br />
begin<br /><br />
try<br /><br />
ShowMessage(IntToStr(ObjCliente.id_conta));<br /><br />
Exit;
Gostei + 0
16/02/2018
John Andrade
Acontece que o componente TComboBox não faz referência a esta objeto.
Por exemplo:
procedure TF_Cliente.EditClienteTipoEnter(Sender: TObject);
var
ObjClienteTipo: TClienteTipo
I: Integer;
begin
EditClienteTipo.Clear;
try
ObjClienteTipo:= ObjClienteTipo.Create;
try
ObjClienteTipo.ObjListCreate;
ObjClienteTipo.Search(ObjClienteTipo);
if ObjClienteTipo.FListClienteTipo.Count = 0 then
begin
for I := 0 to ObjClienteTipo.FListClienteTipo.Count - 1 do
begin
EditClienteTipo.Items.AddObject(TClienteTipo(ObjClienteTipo.FListClienteTipo.Items[I]).no_cliente_tipo, TObject(TClienteTipo(ObjClienteTipo.FListClienteTipo.Items[I]).id_cliente_tipo));
end;
end
else
begin
F_Mensagens.ReceberMensagem(''''Atenção!'''' + #13 +
''''Nenhum registro encontrado!'''');
TF_Mensagens.Mensagem(F_Mensagens.ObjMensagem, ''''I'''', [mbOk]);
except
on E: Exception do
begin
F_Mensagens.ReceberMensagem(''''Atenção!'''' + #13 +
E.Message);
TF_Mensagens.Mensagem(F_Mensagens.ObjMensagem, ''''E'''', [mbOk]);
end;
end;
finally
FreeAndNil(ObjClienteTipo);
end;
Esse objeto que você vê no evento OnEnter do TComboBox funciona perfeitamente.
PROBLEMA:
Tenho um objeto TCliente que quando eu clico no componente TComboBox ele perde as informações.
Eu já alimentei o objeto TCliente com algumas informações, que quando eu clico no componente como falei ele o objeto perde tipo: no_cliente, tp_conta, nu_rg... Entre outras referências.
procedure TF_Cliente.btnSaveClick(Sender: TObject);
var
ObjCliente: TCliente;
ObjClienteController: TClienteController;
begin
try
ShowMessage(IntToStr(ObjCliente.id_conta));
Exit;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)