Ajuda - Busca - Membros - Calendário
Versão Completa: Filelistbox
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
Massonetto
Olá pessoal, estou tentando passar os itens de um FileListBox para outro com o seguinte codigo:

CODE

procedure TForm1.Button1Click(Sender: TObject);
begin
arq := TMemoryStream.Create;
pasta.Items.SaveToStream(arq);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
pasta2.Items.LoadFromStream(arq);
pasta2.Refresh;
end;


Pasta e pasta2 são os FileListBox.
O que acontece eh que o pasta2, oq está recebendo o texto, quando eu tento ler da Stream ele fica em branco. Se alguém souber algo que podesse me ajudar ficaria muito grato.

Abraços, t+
Churc
opa

veja se assim daria certo

procedure TForm1.Button1Click(Sender: TObject);
begin
pasta2.Items.AddStrings(pasta.Items);
end;

se você quiser que apenas carregue os items da pasta em uma variavel pra ser carregada depois, ao inves de arq você especificar como TMemoryStream, coloque para TStringList

tipo

arq: TStringList;

arq := TStringList.Create;
arq.addstrings(pasta.items);

ai pra carregar usaria

pasta2.items.addstrings(arq);

espero q isso ajude...

abraços
Massonetto
vlw cara assim dah certo, mas eu queria via stream pois eu vou envia-la via socket. entende??? Se vc souber fazer via Stream seria muito grato.

Muito Obrigado, T+
Churc
ah ta entendi uhaahu

pensei q não tivesse um propósito...

baseado no seu código, tenta assim

procedure TForm1.Button1Click(Sender: TObject);
begin
arq := TMemoryStream.Create;
pasta.Items.SaveToStream(arq);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
arq.position := 0;
pasta2.Items.LoadFromStream(arq);
end;

position := 0 informa a variavel q a posicao de saida de dados é inicio do buffer

abraços
Massonetto
Ow vlw deu +/- certo... oq acontece q ele tah lendo apenas o que tah na position 0 , se eu ponho 1 ele le oq tah lah... Nao tem um jeito dele ler td de uma soh vez?? Pq ele tah lendo em pedaços.. Muito obrigado

Abraços , espero respostas
Churc
hmm estranho, era pra ele ler todo o conteúdo...

testei aqui assim

var
Form1: TForm1;
arq: TMemoryStream;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
arq := TMemoryStream.Create;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
arq.Clear;
FileListBox1.Items.SaveToStream(arq);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
arq.Position := 0;
FileListBox2.Items.LoadFromStream(arq);
end;

testa mais ou menos assim, se funcionar ai da pra vc saber q o erro está em seu código...
pra vc diferenciar um filelistbox do outro coloca filtro tipo *.exe em um só pra sair um conteúdo diferente...

abraços
Massonetto
Grande Churc, vlw cara deu certo biggrin.gif ...

Abraços e pode fechar
Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.