Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi [indy] treeview übertragen (https://www.delphipraxis.net/27593-%5Bindy%5D-treeview-uebertragen.html)

the_seed 12. Aug 2004 18:14


[indy] treeview übertragen
 
hallo, gibt es ne möglich keit mit der indy kompo idtcp...
ein treeview zu übertragen?
oder müsste man die inzelnen einträhe vorher in stringlists packen? :kotz:

brauche schnelle antwort 'plz'!

Dani 12. Aug 2004 19:27

Re: [indy] treeview übertragen
 
Tach!

Du kannst auch einen Stream benutzen und den Inhalt damit rüberschicken... wenn deine Treeview nur Text enthält, gehts mit einer Stringlist wahrscheinlich einfacher (max 20 Min Arbeit?)

the_seed 12. Aug 2004 19:53

Re: [indy] treeview übertragen
 
hi, darüber hab ich mir auch schon gedanken gemacht,
bei ner stringlist ist aber das problem bei unterverzeichnissen!!??
und mit streams hab ich noch nicht viel erfahrungen ...
habe dazu nur das gefunden...

Dani 12. Aug 2004 20:54

Re: [indy] treeview übertragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei Stringlisten würd ich es so machen (ist wahrscheinlich die uneleganteste und am meisten Speicher/CPU/Traffic fressende Möglichkeit von allen :mrgreen:) :

Code:
Stringlist:

Line Inhalt

0      Hallo #2
1      Hallo #2 Welt #2
2      Hallo #2 Welt #2 #3 dies #2
3      Hallo #2 Welt #2 #3 dies #2 #3 ist #2
4      Hallo #2 Welt #2 #3 dies #2 #3 ist #2 ein #2
5      Hallo #2 Welt #2 #3 dies #2 #3 ist #2 ein #2 Test #2
Treeview:

http://www.delphipraxis.net/download.php?id=6776

-----
Die Zeichen #2 und #3 sind willkürlich ausgewählte Trennzeichen, #2 bedeutet eine Ebene tiefer, #3 bedeutet eine Ebene höher. So könnte es gehen (?) :gruebel:

the_seed 12. Aug 2004 22:04

Re: [indy] treeview übertragen
 
hi, mein problem ist ich hab ein treeview in der vielleicht an die <100 strings stehen versch dinge ...
nur wie bekomm ich den treeview string in einen stream bzw eine stringlist kann ihn/sie übertragen empfagen und in einem treeview widergeben ohne dass alles durcheinander oder feherlhaft ist ???

the_seed 13. Aug 2004 09:05

Re: [indy] treeview übertragen
 
habe es folgender massen versucht nur leider funkt. nicht :(

Code:
server:
...
var
b:string;
str:tstream;

begin
 
  b:=athread.connection.readln;
 
  if b='test' then begin
  try
  str:=TMemoryStream.Create;
  treeview1.SaveToStream(str);
  str.Position := 0;
  athread.connection.OpenWriteBuffer;
  athread.connection.WriteStream(str, true, true, 0);
  athread.connection.CloseWriteBuffer;
  except
  athread.connection.CancelWriteBuffer;

-------------------
client:
...
var
str:tstream;

begin
   
  try
  idtcpclient1.writeln('test');
  str:=TMemoryStream.Create;
  ReadStream(str);
  treeview1.loadfromstream(str);
  finally str.Free;

Dani 13. Aug 2004 16:41

Re: [indy] treeview übertragen
 
Bullshit geschrieben...hat nicht geholfen...bitte weiterlesen.

SirThornberry 13. Aug 2004 17:32

Re: [indy] treeview übertragen
 
also bei mir hat das Treeview eine Methode "SaveToStream" und "LoadFromStream" - es wäre das einfachste diese zu benutzen.
Delphi-Quellcode:
var LStream: TMemoryStream;
begin
  LStream := TMemoryStream.Create;
  TreeView1.SaveToStream(LStream);
  TCPc.Connect();
  TCPc.WriteStrings(TreeStrings, true);
  LStream.Free;
end;
und auf der anderen Seite dann einfach LoadFromStream;

the_seed 13. Aug 2004 17:43

Re: [indy] treeview übertragen
 
Zitat:

Zitat von SirThornberry
also bei mir hat das Treeview eine Methode "SaveToStream" und "LoadFromStream" - es wäre das einfachste diese zu benutzen.
Delphi-Quellcode:
var LStream: TMemoryStream;
begin
  LStream := TMemoryStream.Create;
  TreeView1.SaveToStream(LStream);
  TCPc.Connect();
  TCPc.WriteStrings(TreeStrings, true);
  LStream.Free;
end;
und auf der anderen Seite dann einfach LoadFromStream;

=> du speicherst die einträge in nem stream und überträgst die strings *lol*

ja, das meinte ich oben ja :wink:
nur das problem ist das ich es mit indy machen will und wenn ichs wie og. machen gibt es zwar keine exception aber es kommt auch nix an...
kennt sich denn niemand mit indy gut aus :gruebel:

SirThornberry 13. Aug 2004 17:44

Re: [indy] treeview übertragen
 
naja, du musst nach "SaveToStream" noch die Position des Streams auf 0 setzen
Delphi-Quellcode:
var LStream: TMemoryStream;
begin
  LStream := TMemoryStream.Create;
  TreeView1.SaveToStream(LStream);
  LStream.Position := 0; //  <== Die Zeile habsch vergessen gehabt
  //stream senden (mit welcher compo du das auch immer machst)
  IdTCPClient1.Connect;
  IdTCPClient1.WriteStream(LStream);
  LStream.Free;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz