Função para inverter os itens de um listbox ou memo

20/01/2009

Olá   Preciso de uma função para Função para inverter a ordem dos itens de um listbox ou memo, conhece alguma.     Att.. Ricardo   Delphi 7
Frigorifico Sa

Frigorifico Sa

Curtidas 0

Respostas

Rodrigo Mourão

Rodrigo Mourão

20/01/2009

Olá,

Não tenho nada pronto aqui mas vou criar uma para você. Peço apenas que aguarde.

abs !!!!
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/01/2009

Olá Amigo,

Segue abaixo a função que criei:

function InvertItems(Items: TStrings): TStrings;
var
  TempList: TStrings;
  I,J: Integer;
begin
  TempList := TStringList.Create;
  J := 0;
  for I := Items.Count-1 downto 0 do
  begin
    TempList.Add(Items.Strings[I]);
  end;
  Result := TempList;
end;

Para utilizar é muito simples, você pode pegar de um ListBox inverter e colocar em outro ou inverter os items do proprio list box:

ListBox2.Items := InvertItems(ListBox1.Items);

 Memo1.Lines := InvertItems(Memo1.Lines);


Outra coisa, como passo um TStrings vai funcionar para ListBox, Memo, ComboBox e qualquer componente que possua um TStrings.

abs !!!!


GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/01/2009

Olá Amigo, a função foi suficiente ???

Estamos no aguardo !!!

abs !!!
GOSTEI 0
Frigorifico Sa

Frigorifico Sa

20/01/2009

A inversão funciona pefeitamente.   O codigo ficou bem otimizado e parabens pelas video aula sobre RADSTUDIO E DBEXPRESS4.       Só que dobra os itens fica os da ordem decrescente e os da ordem crescente, tentei adaptar mas não deu certo.     function InvertItems(Items: TStrings ;Componente : TStrings): TStrings;
var
  TempList: TStrings;
  I,J: Integer;
begin
  TempList := TStringList.Create;
  J := 0;
  for I := Items.Count-1 downto 0 do
  begin
    TempList.Add(Items.Strings[I]);
  end;
  Componente.Clear;
  Result := TempList;
end;
   
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/01/2009

Olá Amigo, Deve haver alguma coisa errado no seu codigo. Voce deve estar dando Add(InvertItems) e não e isso. Estou lhe enviano um exemplo de como fazer. É exatamente como está no código do meu post acima. abs !!!!

[#VIDEO-66#]
GOSTEI 0
Rodrigo Mourão

Rodrigo Mourão

20/01/2009

Olá, conseguiu utilizar a rotina ???

Estamos no aguardo para podermos encerrar o chamado !!!

abs !!!!!!!!!!!!!!!
GOSTEI 0
Frigorifico Sa

Frigorifico Sa

20/01/2009

Consegui, funcionou perfeitamente.   Abrigado.   Pode encerrar o chamado.      
GOSTEI 0
POSTAR