DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 
DevWare  
Novidade: DevMedia lança o DevWare - Saiba mais!

Fórum DevMedia


Autor
Mensagem
lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 17/3/2011 11:03:11 AM
 
oi gostaria d saber como faço para deletar captions iguais exemplo se eu tiver listview1 e ela tiver a listview2 com 2 nomes com o msm caption da listview1 como faço com função para deleta-los???

eu stou usando sem função e colocando essa condição If ListView_Dependente.Items.Item[I].Caption = ListView_Funcionario.Items.Item[ListView_Funcionario.ItemIndex].Caption Then so que esta deleta som 1 se tiverem 2 iguais ele ñ deleta so deleta 1

se puder me ajudar eu agradeço muitíssimo

LEONARDO XAVIER
 

 


País: Brasil
Estado: RS
Cidade: São Gabriel
Mensagens: 745
 Postado em: 17/3/2011 01:13:44 PM
 
ola:

   tente o seguinte:

#Código
var 
i:integer;

Begin

 for i:=0 to datasource1.dataset.RecordCount do begin
        If 
ListView_Dependente.Items.Item[I].Caption =   
                ListView_Funcionario.Items.Item[I].Caption 
Then begin
           ListView_Funcionario.Items.Item[I].visible:=false;
     end; 
end;      
 



lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 17/3/2011 01:28:39 PM
 
eu eu to fazendo exatamente assim so q sem o datasource, ñ to usando banco de dados nem nada disso so q ele deleta so a primeira e daxa as outras tipo se tiver 2 captions iguais a listview1 ele deleta so o primeiro o 2 que tem o mesmo caption da lisv1 q deveria deletar junto por ser igual ñ deleta, fica 
lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 09:10:28 AM
 
cm faço ???????????????
ANDRÉ LUIS DA SILVEIRA
 

 


País: Brasil
Estado: GO
Cidade: Goiânia
Mensagens: 67
 Postado em: 18/3/2011 09:15:58 AM
 
Coloca o código completo de como está fazendo, se estiver deletando, note que ao deletar um registro ou item ele muda o indice.

Se eu estiver no indice 2 de uma list que tenha 5 itens, ao deletá-lo, o item de indice 3 passa a ser o 2, o 4 passa para 3 e o 5 passa a ser 4.

Pode ser por isso que está pulando um item, pois o indice desse item pode mudar para um que o laço já passou e não passará novamente.

Posta o código completo de como está fazendo que facilitará a solução da sua dúvida.

lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 09:20:01 AM
 
If Listview1.ItemIndex <> -1 Then
   Begin
For I := 0 to ListView2.Items.Count - 1 Do
    Begin
   If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
      Begin
    ListView2.Items.Delete(I);
   ListView1.Items.Delete(I)
    Break;
      End

lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 09:22:49 AM
 
se eu apagar a listview1 e tiverer 2 captions iguais na dois ele so apaga 1 e dxa o outro se puder me ajudar eu agradeço muito

ANDRÉ LUIS DA SILVEIRA
 

 


País: Brasil
Estado: GO
Cidade: Goiânia
Mensagens: 67
 Postado em: 18/3/2011 09:35:26 AM
 
Deve ser exatamente o que falei no meu post anterior, tenta com essa forma:

    Contador := 0;

   If Listview1.ItemIndex <> -1 Then
   Begin
        While Contador <= ListView2.Items.Count - 1 do
        Begin
           If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
           Begin
               ListView2.Items.Delete(I);
               ListView1.Items.Delete(I);
           End
           Else
              Inc(Contador);
        End
    End

lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 09:50:18 AM
 
infelizmente ñ funciono desse jeito tbm
lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 09:53:47 AM
 
ñ deu certo tbm infelizment
lu
 


País: Brasil
Estado: PE
Cidade: olinda
Mensagens: 127
 Postado em: 18/3/2011 10:09:21 AM
 

Citação:
Deve ser exatamente o que falei no meu post anterior, tenta com essa forma:

    Contador := 0;

   If Listview1.ItemIndex <> -1 Then
   Begin
        While Contador <= ListView2.Items.Count - 1 do
        Begin
           If ListView2.Items.Item[I].Caption = ListView1.Items.Item[ListView1.ItemIndex].Caption Then
           Begin
               ListView2.Items.Delete(I);
               ListView1.Items.Delete(I);
           End
           Else
              Inc(Contador);
        End
    End



assim ñ deu certo ainda  ta com mesmo erro. exemplo se tiver 2 captions iguiais ao listview1 ele so apaga o primeiro ao invez d apagar todos iguais???????

ANDRÉ LUIS DA SILVEIRA
 

 


País: Brasil
Estado: GO
Cidade: Goiânia
Mensagens: 67
 Postado em: 18/3/2011 10:38:08 AM
 
#Código
procedure TForm1.btn1Click(Sender: TObject);
var
    contador  : Integer;
    Achou : Boolean;
begin
    Achou := False;
   If lv1.ItemIndex <> -1 Then
   Contador := 0;

   If lv1.ItemIndex <> -1 Then
   Begin
        While Contador <= lv2.Items.Count - 1 do
        Begin
           If lv2.Items.Item[Contador].Caption = lv1.Items.Item[lv1.ItemIndex].Caption Then
           Begin
               lv2.Items.Delete(Contador);
               Achou := True;
           End
           Else
              Inc(Contador);
        End
    End;


   if Achou then
   begin
     lv1.DeleteSelected;
   end;

   lv1.Refresh;
   lv2.Refresh;
end;

Fiz esse exemplo e aqui funcionou normal.

web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03