Massonetto
08/10/2005 - 17:55
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+
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
08/10/2005 - 19:43
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+
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
09/10/2005 - 01:18
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
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
09/10/2005 - 11:19
Grande Churc, vlw cara deu certo

...
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.