Combobox

Delphi

22/10/2003

Preciso colocar em um combobox itens com valores expressos, tipo:
Texto Valor
Laranja 30
Abacate 23
Mamao 16

quando o cliente escolher um item desejo pegar como resposta o valor e nao o itemindex e possivel?


Mr_joni

Mr_joni

Curtidas 0

Respostas

Osocram

Osocram

22/10/2003

Bom vc pode
colocar um ´case itemindex ´ e fixar o valor...

vc pod tbm qdo o cliente escolher o item... vc pegar o valor do texto tipo
combobox.text eu acho.


GOSTEI 0
Ecie

Ecie

22/10/2003

Vc porde colocar como valor combobox.text


GOSTEI 0
Mr_joni

Mr_joni

22/10/2003

NAo vai dar para usar o case por q sao muitos itens... Preciso de um combobox tipo o dos formulario de intenet onte tem um texto e um valor associado a este texto.

Obrigado.


GOSTEI 0
Mr_joni

Mr_joni

22/10/2003

Vc porde colocar como valor combobox.text


Como eu coloco varios valores no combobox.text?

Obrigado.


GOSTEI 0
Osocram

Osocram

22/10/2003

entaum vc pod fazer assim..

no texto vc escreve
Abacate -> 50

o simbolo ´ -> ´ eh so p vc ter um simbolo de separacao entre o nome e o valor...
dae qdo o cliente clicar em algum item vc faz assim...
var
valor:string;

......
valor := strpos(Pchar(Combobox.text),Pchar(´ -> ´));
valor := stringReplace(valor,´ -> ´, ´´);


GOSTEI 0
Helderjr

Helderjr

22/10/2003

De uma olhada no componente JvDBComboBox da JVCL, você pode colocar o que quiser na propriedade items e na propriedade Value o valor que corresponde cada item este valor é o que será gravado na tabela.


GOSTEI 0
Beppe

Beppe

22/10/2003

Use a propriedade Objects.

Combo.Items.Objects[0] := TObject(30);
Combo.Items.Objects[1] := TObject(30);
Combo.Items.Objects[2] := TObject(90);
Combo.Items.Objects[3] := TObject(40);
Combo.Items.Objects[4] := TObject(90);
Combo.Items.Objects[5] := TObject(20);
Combo.Items.Objects[6] := TObject(80);
Combo.Items.Objects[7] := TObject(20);

Para recuperar o valor: Integer(Combo.Items.Objects[Combo.ItemIndex])

A propriedade é do tipo TObject, por isso os typecasts.

Ou cria um array.

Ataliba


GOSTEI 0
Adilsond

Adilsond

22/10/2003

procedure TForm1.Button1Click(Sender: TObject);
begin
  ComboBox1.Items.Clear;
  ComboBox1.Items.AddObject(´Laranja´,TObject(30));
  ComboBox1.Items.AddObject(´Abacate´,TObject(23));
  ComboBox1.Items.AddObject(´Mamao´,TObject(16));
  ComboBox1.ItemIndex := 0;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if ComboBox1.ItemIndex > -1 then
     Edit1.Text := IntToStr(Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]));
end;



GOSTEI 0
Mr_joni

Mr_joni

22/10/2003

Obrigado a todos. deu certo. mas so uma curiosidade onde eu encontro o componente JVCL citado acima?

Obrigado.


GOSTEI 0
POSTAR