Eder Postado Janeiro 9, 2008 Denunciar Share Postado Janeiro 9, 2008 Ola...Como adicionar um TEXTO no Combobox via códido?? e também como deletar um TEXTO no combobox via código???Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 10, 2008 Denunciar Share Postado Janeiro 10, 2008 Oi Eder ... vai ai o codigoprocedure TForm1.Button1Click(Sender: TObject); begin ComboBox1.Items.Append('aaaaaaaaa'); // para adicionar um texto end; procedure TForm1.Button2Click(Sender: TObject); begin ComboBox1.Items.Delete[ComboBox1.ItemIndex]; // para deletar o texto selecionado end;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Janeiro 10, 2008 Autor Denunciar Share Postado Janeiro 10, 2008 Ola..Jonas...seguinte....eu não expliquei direito...o que eu queria era o seguinte......fazer um ifprocedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN BEGIN ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS'); end else begin ComboOrdem.Items.Delete('CIDADES/PRAÇAS/ESTADOS'); end; end; Caso eu escolha no ComboLayOut = LAYOUT-1 ele adicionada no combo 'CIDADES/PRAÇAS/ESTADOS' senão limpa ou adiciona. Neste caso acima...o codigo: ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS');ele fica duplicando cada vez que o usuario selecionar no ComboLayOuteu precisaria de algo que não duplicasse....e sim colocasse 'CIDADES/PRAÇAS/ESTADOS' ou não dependendo do IFnão sei se fui claro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 10, 2008 Denunciar Share Postado Janeiro 10, 2008 ele fica duplicando cada vez que o usuario selecionar no ComboLayOuteu precisaria de algo que não duplicasse....e sim colocasse 'CIDADES/PRAÇAS/ESTADOS' ou não dependendo do IFvoce pode fazer assim para não duplicarprocedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN BEGIN ComboOrdem.Clear; ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS'); end else begin ComboOrdem.Items.Delete('CIDADES/PRAÇAS/ESTADOS'); end; end;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Janeiro 10, 2008 Autor Denunciar Share Postado Janeiro 10, 2008 Oba..JonasCarinha...eu já havia tentado este comando:ComboOrdem.Clear; mas ai eu acabo limpando tudo ....e ai não posso tenho outras linhas....que não podem ser apagadas, no caso quero teria que apagar somente a linha que tem: 'CIDADES/PRAÇAS/ESTADOS' em duplicidade. este comando aqui eu também já havia tentando.....não funca: ComboOrdem.Items.Delete('CIDADES/PRAÇAS/ESTADOS');erro:[Error] Unit1.pas(36): Incompatible types: 'Integer' and 'String' :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 10, 2008 Denunciar Share Postado Janeiro 10, 2008 (editado) tenta desta maneiraunit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ComboOrdem: TComboBox; Button1: TButton; COMBOLAYOUT: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var i , achou : integer; begin achou := 0; IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN begin for i := 0 to ComboOrdem.Items.Count-1 do begin if ComboOrdem.Items.Strings[i] = 'CIDADES/PRAÇAS/ESTADOS' then achou := achou + 1; end; if achou = 0 then ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS') else begin ComboOrdem.Items.Delete(i-1); achou := 0; end; end; ComboOrdem.Text := ''; ComboOrdem.Refresh; end; end.Modifique se for necessario.. Explicação: se encontrar a palavra 'LAYOUT-1' no edit1, ele faz uma varredura nos itens do combobox... se não existir ele acrescenta ... e se existir ele deleta abraço Editado Janeiro 10, 2008 por Jhonas Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Janeiro 11, 2008 Autor Denunciar Share Postado Janeiro 11, 2008 Oba...Jonas...Testei seu código e dava alguns buguezinhos....ele as vezes acaba limpando no comboOrdem items que não deveria....Então tive uma idéia...até muito simples que deu certo.Limpei as STrings do ComBoOrdem..e ai coloquei em Run-Time....e deu certinho..veja como ficou:procedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN BEGIN LInforma.Caption:='SEM Separação de Praças e Estados'; ComBoOrdem.Clear; ComboOrdem.Items[0]:='ESTADOS/PRAÇAS/CIDADES'; ComboOrdem.Items[1]:='PRAÇAS/CIDADES'; end else begin LInforma.Caption:='COM Separação de Praças e Estados'; ComboOrdem.Items[0]:='CIDADES/PRAÇAS/ESTADOS'; ComboOrdem.Items[1]:='ESTADOS/PRAÇAS/CIDADES'; ComboOrdem.Items[2]:='PRAÇAS/CIDADES'; end; end;Beleza...carinha valeu...a força.muito Grato..t+ :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Janeiro 12, 2008 Denunciar Share Postado Janeiro 12, 2008 Eder, se a idéia é eliminar o texto com é inserido, experimente:procedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN ComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS'); else ComboOrdem.Items.Delete(ComboOrdem.Items.IndexOf('CIDADES/PRAÇAS/ESTADOS')); end;IndexOf, retorna o índice na lista onde está o texto. Caso ele não exista, será retornado -1. Se não me engano, quando é passado um índice meno que zero, não qualquer erro relacionado a "ranger", tipo: "Index out of ranger"Assim, o exemplo deve funcionar sem problemas... Teste.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Janeiro 15, 2008 Autor Denunciar Share Postado Janeiro 15, 2008 Oba...Micheustestei mas infelizmente...não funca direito...cada vez que o usuario seleciona no ComboLayout ele insere a linhaComboOrdem.Items.Append('CIDADES/PRAÇAS/ESTADOS'); ai fica duplicando a mesma linha... a solução melhor que funciona legal é esta que postei...... procedure TFormRelCidades.ComboLayOutChange(Sender: TObject); begin IF COMBOLAYOUT.TEXT = 'LAYOUT-1' THEN BEGIN LInforma.Caption:='SEM Separação de Praças e Estados'; ComBoOrdem.Clear; ComboOrdem.Items[0]:='ESTADOS/PRAÇAS/CIDADES'; ComboOrdem.Items[1]:='PRAÇAS/CIDADES'; end else begin LInforma.Caption:='COM Separação de Praças e Estados'; ComboOrdem.Items[0]:='CIDADES/PRAÇAS/ESTADOS'; ComboOrdem.Items[1]:='ESTADOS/PRAÇAS/CIDADES'; ComboOrdem.Items[2]:='PRAÇAS/CIDADES'; end; end;mas valeu a dica....Abraços :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Eder
Ola...
Como adicionar um TEXTO no Combobox via códido??
e
também como deletar um TEXTO no combobox via código???
Grato
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.