|
|
|
Apagar vários itens de um TListBox de uma só vez
|
{E aí galera, to de volta. É sempre um prazer poder ajudar os colegas.
O procedimento seguinte faz com que sejam apagados vários ítens em um TListBox
de uma só vez, não importando se eles são selecionados aleatóriamente ou em sequência.
Ele cria um arquivo temporário que fará as devidas tranferências(Obs.: a propriedade "MultiSelect"
do TListBox deve ser alterada para "true"). }
//Ela tem que ser declarada na sessão Private da Unit.
procedure TForm1.ApagarVarios(ListBox:TListBox);
var
i:integer;
lista1, lista2:TStringList;
begin
for i:=0 to ListBox.Items.Count-1 do
if ListBox.Selected[i] then
begin
ListBox.Items.Strings[i]:='';
ListBox.Items.SaveToFile(extractfilepath(application.ExeName)+'itens.txt');
end;
Lista1:=TStringList.Create;
Lista2:=TStringList.Create;
lista1.LoadFromFile(extractfilepath(application.ExeName)+'itens.txt');
for i:=0 to lista1.Count-1 do
begin
if lista1.Strings[i]<>'' then
begin
lista2.Add(lista1.Strings[i]);
lista2.SaveToFile(extractfilepath(application.ExeName)+'itens.txt');
end
else
lista2.SaveToFile(extractfilepath(application.ExeName)+'itens.txt');
end;
ListBox.Items.LoadFromFile(extractfilepath(application.ExeName)+'itens.txt');
deletefile(extractfilepath(application.ExeName)+'itens.txt');
end;
// Adicione alguns ítens no TListBox
procedure TForm1.btnAdicionaClick(Sender: TObject);
var
S : String;
begin
S := InputBox('Adicionar ítens', 'Digite algo' , '');
ListBox1.Items.Add(S);
ListBox1.Items.SaveToFile(extractfilepath(application.ExeName)+'itens.txt');
end;
// Agora chame o procedimento.
procedure TForm1.btnApagaClick(Sender: TObject);
begin
if not (ListBox1.Items.Count=0) and (ListBox1.Selected[ListBox1.ItemIndex]) then
ApagarVarios(ListBox1);
end;
|
|
Autor : David da Silva Brand |