evitar duplicidade no combobox

Delphi

04/01/2008

colegas, como evitar que seja inserido mais de um registro igual em um combobox?

tentei trabalhar com o metodo IndexOf mas nao cheguei a lugar algum...

abraços!


Mahdak

Mahdak

Curtidas 0

Respostas

Pestana_

Pestana_

04/01/2008

você está está preenchendo o combo através de um select? caso sim, faça esse tratamento no select.

agora para evitar duplicidade no proprio combo eu não sei.

flw.


GOSTEI 0
Pestana_

Pestana_

04/01/2008

tentei trabalhar com o metodo IndexOf mas nao cheguei a lugar algum...


se eu não me engano o [i:b5bb6efdb5]IndexOf[/i:b5bb6efdb5] retorna o indice do item.


GOSTEI 0
Jose Almeida

Jose Almeida

04/01/2008

Olá amigo.
Use esta função:

function StrIsInList(Lista:TStrings;Str:string): boolean;
var
Cont:integer;
begin
Result:=false;
for Cont:=0 to Lista.Count-1 do
if Str = (Lista.Strings[Cont])then
begin
Result:=true;
Exit;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if not(StrIsInList(ComboBox1.Items,Edit1.Text)) then
ComboBox1.Items.Add(Edit1.Text);
end;

Se o String não está no ComboBox, então adiciona.


GOSTEI 0
Micheus

Micheus

04/01/2008

Um exemplo utilizando o IndexOf citado pelo colega [b:b18ef39ebf]Pestana_[/b:b18ef39ebf]:
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
  if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
    ComboBox1.Items.Add(ComboBox1.Text);
end;



GOSTEI 0
Pestana_

Pestana_

04/01/2008

Um exemplo utilizando o IndexOf citado pelo colega [b:0858c9c199]Pestana_[/b:0858c9c199]:
procedure TForm1.ComboBox1Exit(Sender: TObject);
begin
  if ComboBox1.Items.IndexOf(ComboBox1.Text) = -1 then
    ComboBox1.Items.Add(ComboBox1.Text);
end;


boa [b:0858c9c199]micheus[/b:0858c9c199] deste jeito resolve o problema do mahdak.


flw.


GOSTEI 0
POSTAR