Fórum ComboBox.Items.IndexOf receber string #480003
24/05/2014
0
tenho um form que faz uma pesquisa pelo cep e armazena o
nome da rua, cidade e estado
o problema é que meu comboBox esta no stilo
csDropDownList e no modo convencioanal não da
tenho que fazer assim
ComboBo.text:=' ';
o código esta asssim
estado:= lodados.Values[''UF'']; declarei a variavel mais nda de funcionar
cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOf (estado); desse jeito não aparece nada
e esse e o código completo
application.ProcessMessages;
//Cria-se uma string List
lodados:=TStringList.Create;
//Nesta linha busca-se a informação através da url indicada
//StrinReplace eh utilizada para substituir os caracteres & por CR
//UrlDecode eh para eliminar caracteres de código html para acentos
//&formato=query_string ou xml javascript
lodados.text:=stringreplace(idhttp1.URL.URLDecode(idhttp1.Get(''http://republicavirtual.com.br/web_cep.php?cep=''+mask_cep.text+''&formato=query_string'')),''&'',#13#10,[rfreplaceAll]);
//lodados vira uma matriz e fazemos o acesso aos dados...
edt_endereco.text:=lodados.Values[''TIPO_LOGRADOURO'']+'' ''+lodados.Values[''LOGRADOURO''];
edt_bairro.text:=lodados.Values[''BAIRRO''];
edt_cidade.text:=lodados.Values[''CIDADE''];
estado:= lodados.Values[''UF''];
cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOf (estado);
Jose Silva
Curtir tópico
+ 0Posts
24/05/2014
Ricardo Araujo
Fiz exemplo bem simples, acho que vai ajuda você.
Segue o código abaixo;
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Estado : string;
posicao : Integer;
begin
Estado := 'Tocantins';
posicao := ComboBox1.Items.IndexOf(Estado);
ComboBox1.ItemIndex := posicao;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ComboBox1.Items.Add('Rio de Janeiro');
ComboBox1.Items.Add('São paulo');
ComboBox1.Items.Add('Bahia');
ComboBox1.Items.Add('Tocantins' );
ComboBox1.Items.Add('Rio grande do Sul');
end;
end.
Este exemplo é bem simples e você pode adaptar na sua aplicação, o exemplo está funcionando blz.
Qualquer coisa me envie um feedback.
Gostei + 0
25/05/2014
Jose Silva
e ele funcionaria perfeitamente se eu tivesse um
base de de dados local o problema é que eu busca essas informações
da internet do e armazeno o valor em Edit pelo que percebi
e tipo text e o meu combobox não aceita
edt_cidade.text:=lodados.Values['CIDADE']; // aqui vai de boa
cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOfName(lodados.Values['UF']); mas aqui
não retorna nada
já tentei jogar em uma variável mas nada tambem
lembrando que meu combobox esta com estilo csOwnerDrawVariable
que é para limitar a quantidade de siglas
que o usuário ver
desde já obrigado pela atenção
Gostei + 0
25/05/2014
Carlos Bernardo
Showmessage(estado);
o problema pode estar ai...
Gostei + 0
27/05/2014
Nelson Santos
http://www.3dsistemas.com.br
Gostei + 0
27/05/2014
Jose Silva
veja quando eu mudo o style da combobox para csDropDown
funciona blz
mas quando mudo o style para csOwnerDrawVariable
não recebe nada
o valor que a variável estado recebe esta OK
ja tentei
estado:=lodados.Values['UF'];
cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOfName(estado);
e tambem
estado:=lodados.Values['UF'];
cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOfName(lodados.Values['UF']);
mas nada
Gostei + 0
02/06/2014
Ricardo Araujo
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm1 = class(TForm)
Edit1: TEdit;
ComboBox1: TComboBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn2Click(Sender: TObject);
var
posicao : Integer;
begin
// cbbx_estado.ItemIndex := cbbx_estado.Items.IndexOfName(lodados.Values['UF']); mas aqui
// para isto funcionar terá que pegar o valor passado no edt_cidade
// qualquer coisa me envio o seu exemplo que vejo porque esta dando errado.
posicao := ComboBox1.Items.IndexOf(Edit1.Text);
ComboBox1.ItemIndex := posicao;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
// neste edit1 vamos simular que estou recebendo conteudo na internet.
// que seria : edt_cidade.text:=lodados.Values['CIDADE'];
Edit1.Text := 'SP';
end;
end.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)