Memo1 para ListView1 ?

Delphi

02/06/2008

Como Transferir as Linhas do Memo1 para ser add Como Items no ListView1 ?

Abraços :wink:


Warfighter

Warfighter

Curtidas 0

Respostas

Fabianosales

Fabianosales

02/06/2008

var
  i : integer;
  li : TListItem;
begin
  i:=0;
  ListView1.Items.BeginUpdate;
  ListView1.Items.Clear;
  while i < Memo1.Lines.Count do
    begin
      li := ListView1.Items.Add;
      li.Caption := Memo1.Lines[i];
      Inc(i);
    end;
  ListView1.Items.EndUpdate;
end;



GOSTEI 0
Pestana_

Pestana_

02/06/2008

Ola fabianosales, você utiliza o [b:2fe8bbf923]BeginUpdate[/b:2fe8bbf923] e [b:2fe8bbf923]EndUpdate[/b:2fe8bbf923] quando se inclui, altera ou exclui um item da lista? serve para melhorar o desempenho no momento da modificação de itens na lista, é isso?

Obrigado!


GOSTEI 0
Warfighter

Warfighter

02/06/2008

Obrigado

Funciono Perfeitamente :wink:

Abraços

var
  i : integer;
  li : TListItem;
begin
  i:=0;
  ListView1.Items.BeginUpdate;
  ListView1.Items.Clear;
  while i < Memo1.Lines.Count do
    begin
      li := ListView1.Items.Add;
      li.Caption := Memo1.Lines[i];
      Inc(i);
    end;
  ListView1.Items.EndUpdate;
end;



GOSTEI 0
Pestana_

Pestana_

02/06/2008

Ola fabianosales, você utiliza o [b:94cf47641e]BeginUpdate[/b:94cf47641e] e [b:94cf47641e]EndUpdate[/b:94cf47641e] quando se inclui, altera ou exclui um item da lista? serve para melhorar o desempenho no momento da modificação de itens na lista, é isso? Obrigado!



UP!


GOSTEI 0
Fabianosales

Fabianosales

02/06/2008

Isso mesmo Pestana.

Quando um controle visual que manipula coleções de valores (como TListView, TMeno, TCombobox, etc..) tem sua lista de itens modificada, a vcl tenta redesenhar todo o controle na tela. Quando vários itens são adicionados de uma vez, o controle poderá piscar na tela (especialmente em máquinas lentas) e o processo de alteração da lista pode sofrerá uma queda de performance.
O uso do BeginUpdate e EndUpdate serve para impedir que isso aconteça. Quando BeginUpdate é chamado, o desenho do controle fica suspenso até que EndUpdate seja executado.
A grande probabilidade é que isso passe despercebido na máquina do desenvolvedor mas, em máquinas antigas, o efeito é bem visível (e bem desegradável :wink: ).

Veja o que diz o help do delphi
Call BeginUpdate before making multiple changes to the list of items. When all changes are complete, call EndUpdate so that the changes can be reflected on screen. BeginUpdate and EndUpdate prevent excessive redraws and speed processing time when new items are added, deleted, or inserted.



GOSTEI 0
Pestana_

Pestana_

02/06/2008

Isso mesmo Pestana. Quando um controle visual que manipula coleções de valores (como TListView, TMeno, TCombobox, etc..) tem sua lista de itens modificada, a vcl tenta redesenhar todo o controle na tela. Quando vários itens são adicionados de uma vez, o controle poderá piscar na tela (especialmente em máquinas lentas) e o processo de alteração da lista pode sofrerá uma queda de performance. O uso do BeginUpdate e EndUpdate serve para impedir que isso aconteça. Quando BeginUpdate é chamado, o desenho do controle fica suspenso até que EndUpdate seja executado. A grande probabilidade é que isso passe despercebido na máquina do desenvolvedor mas, em máquinas antigas, o efeito é bem visível (e bem desegradável :wink: ). Veja o que diz o help do delphi [quote:f9867ed150]Call BeginUpdate before making multiple changes to the list of items. When all changes are complete, call EndUpdate so that the changes can be reflected on screen. BeginUpdate and EndUpdate prevent excessive redraws and speed processing time when new items are added, deleted, or inserted.
[/quote:f9867ed150]

valeu Fabiano!

você esclareceu esta dúvida que eu tinha, obrigado! :wink:


flw.


GOSTEI 0
POSTAR