![]() |
[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'! |
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?) |
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 ![]() |
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:
Treeview:
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 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: |
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 ??? |
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; |
Re: [indy] treeview übertragen
Bullshit geschrieben...hat nicht geholfen...bitte weiterlesen.
|
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:
und auf der anderen Seite dann einfach LoadFromStream;
var LStream: TMemoryStream;
begin LStream := TMemoryStream.Create; TreeView1.SaveToStream(LStream); TCPc.Connect(); TCPc.WriteStrings(TreeStrings, true); LStream.Free; end; |
Re: [indy] treeview übertragen
Zitat:
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: |
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. |
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