Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi JSONTreeView - ein Node exportieren? (https://www.delphipraxis.net/212056-jsontreeview-ein-node-exportieren.html)

SearchBot 9. Dez 2022 22:09

JSONTreeView - ein Node exportieren?
 
Ich habe heute den Wunsch gehabt, diese unübersichtlichen JSON-Daten als String in "pretty" formatiert anzusehen.

Da habe ich den DelphiJSONViewer und dort auch verlinkt die JSONTreeView-Komponente gefunden :thumb:

Jetzt habe ich also eine JSON-Datei, aus der ich Nodes löschen will, weil sie nicht benötigt werden.
Ich klicke sie an und entferne sie ganz einfach:
Delphi-Quellcode:
  JSONTreeViewMain.Selected.Delete;

Nun möchte ich aber auch nur den einen selektierten Node (mit seinen Unterzweigen) exportieren...
Delphi-Quellcode:
  JSONTreeViewMain.Selected.TreeView.SaveToFile(..)

Leider speichert diese Funktion aber alles, auch die anderen Nodes, die ich nicht selektiert habe.

Wie kann ich es richtig machen?

mytbo 10. Dez 2022 00:18

AW: JSONTreeView - ein Node exportieren?
 
Zitat:

Zitat von SearchBot (Beitrag 1516016)
Wie kann ich es richtig machen?

Ist dein Quelltext real, oder Pseudocode? In den von dir verlinkten DelphiJSONViewer/DelphiJSONComponents Komponenten kann ich nichts finden. In den mORMot ThirdParty Demos gibt es mit SynJSONTreeView ein Pendant. Da das JSON Dokument als DocVariant vorliegt, kann man jeden Teilknoten separat mit der Funktion ToJSON speichern. Das Beispiel für mORMot2 umzuschreiben, sollte eine Kleinigkeit sein. Als Donation an das mORMot Projekt, wenn du schon am Packen der Geschenke bist.

Bis bald...
Thomas

himitsu 10. Dez 2022 01:00

AW: JSONTreeView - ein Node exportieren?
 
Wieso kommt immer jemand auf komische Ideen etwas in einem Viewer machen zu wollen?

Ein Viewer hat was mit Anzeigen zu tun, nicht mit der Formatierung von Daten.


Man nehme irgendeine JSON-Daten-Komponente und dann

https://stackoverflow.com/questions/...json-in-delphi
https://www.delphipraxis.net/195387-...rmatieren.html
...
...
...




statt einer TStringList ein TMemo benutzen
statt einer CSV-Komponente ein TStringGrid oder gar das ganze MSExcel
statt ...

SearchBot 10. Dez 2022 17:43

AW: JSONTreeView - ein Node exportieren?
 
Zitat:

Zitat von mytbo (Beitrag 1516021)
Ist dein Quelltext real, oder Pseudocode?
In den von dir verlinkten DelphiJSONViewer/DelphiJSONComponents Komponenten kann ich nichts finden.

Real. Genau so habe ich das beschriebene Ergebnis bekommen.

Zitat:

Zitat von mytbo (Beitrag 1516021)
In den mORMot ThirdParty Demos gibt es mit SynJSONTreeView ein Pendant. Da das JSON Dokument als DocVariant vorliegt, kann man jeden Teilknoten separat mit der Funktion ToJSON speichern.

Das schaue ich mir gerne an, danke für den Tipp :thumb:

Zitat:

Zitat von himitsu (Beitrag 1516022)
Wieso kommt immer jemand auf komische Ideen etwas in einem Viewer machen zu wollen?

Ein Viewer hat was mit Anzeigen zu tun, nicht mit der Formatierung von Daten.

Ich habs gerne WYSIWYG :stupid:
Und ich wollte die Untermengen zusammenklappen können, eben genau so wie es der TreeView macht. Finde ich übersichtlicher.

Zitat:

Zitat von himitsu (Beitrag 1516022)

Auch danke für diese Tipps :thumb:

charly52 1. Apr 2023 13:42

AW: JSONTreeView - ein Node exportieren?
 
Hi Thomas,

Zitat:

Zitat von mytbo (Beitrag 1516021)
In den mORMot ThirdParty Demos gibt es mit SynJSONTreeView ein Pendant. ..... Das Beispiel für mORMot2 umzuschreiben, sollte eine Kleinigkeit sein.


Das wollte ich jetzt machen, aber scheitere u.a. an der fehlenden "InputBox()". Wo gibt es die in mORMot2?
Oder wie heißt sie jetzt?


Gruß Charly

Uwe Raabe 1. Apr 2023 13:55

AW: JSONTreeView - ein Node exportieren?
 
Gibt's in Vcl.Dialogs bzw. Fmx.Dialogs.

mytbo 1. Apr 2023 21:00

AW: JSONTreeView - ein Node exportieren?
 
Zitat:

Zitat von charly52 (Beitrag 1520567)
Das wollte ich jetzt machen, aber scheitere u.a. an der fehlenden "InputBox()". Wo gibt es die in mORMot2?

Die Unit mORMotUILogin gibt es in mORMot2 (noch) nicht.

Wie es Uwe empfohlen hat, die Funktion InputBox aus der Unit Vcl.Dialogs sollte gleich funktionieren. Ich hoffe, du postest den Quelltext hier und machst ein Announcement im mORMot Forum. Arnaud ist hier im DP Forum angemeldet. Und wenn ich schon beim Wünschen bin, die Verwendung von Virtual Treeview wäre fein. :wink:

Bis bald...
Thomas

charly52 2. Apr 2023 15:15

AW: JSONTreeView - ein Node exportieren?
 
Hi,


Zitat:

Zitat von mytbo (Beitrag 1520584)
Wie es Uwe empfohlen hat, die Funktion InputBox aus der Unit Vcl.Dialogs sollte gleich funktionieren.

Habe ich inzwischen gefunden.
Nur die YesNo() konnte ich nirgends finden. Die habe ich rudimentär in SynJSONTreeView.pas nachgebaut. Gibt immer mrNo zurück.

Zitat:

Zitat von mytbo (Beitrag 1520584)
Ich hoffe, du postest den Quelltext hier und machst ein Announcement im mORMot Forum.

Das komplette Projekt gezipt und angehängt. SynJSONTVEditor.zip
In ReadMe-mORMot2.md noch etwas zusätzliche Info zu den Compilereinstellungen.
Merde... ich kriege die zip-datei NICHT angehängt.????

ein Dropbox Zugang. https://app.box.com/s/9zto7kjcxb0d3250uere7l4ftpe6kr6h



Zitat:

Zitat von mytbo (Beitrag 1520584)
.... und machst ein Announcement im mORMot Forum.

Was meinst du mit Annnouncment im mORMot Forum? Wo da und was soll da rein?

Zitat:

Zitat von mytbo (Beitrag 1520584)
Arnaud ist hier im DP Forum angemeldet.

Was willst du mir damit sagen?

Zitat:

Zitat von mytbo (Beitrag 1520584)
Und wenn ich schon beim Wünschen bin, die Verwendung von Virtual Treeview wäre fein. :wink:

Was genau meinst du? was für ein "Virtual Treeview" und wo soll das benutzt werden?

Tut mir leid, daß ich wieder mehr Fragen als Antworten oder Taten lefern kann, aber ihr klärt mich bestimmt auf. :-)

Gruß Charly

mytbo 2. Apr 2023 20:23

AW: JSONTreeView - ein Node exportieren?
 
Zitat:

Zitat von charly52 (Beitrag 1520598)
Zitat:

Zitat von mytbo (Beitrag 1520584)
.... und machst ein Announcement im mORMot Forum.

Was meinst du mit Annnouncment im mORMot Forum? Wo da und was soll da rein?

Arnaud nimmt Contributions als Pull Requests im GitHub Repository entgegen. Wenn du diesen Weg nicht gehen willst, bevor der Beitrag verloren geht, kannst du es auch in einem öffentlichen Repository hinterlegen und bekannt machen. Er hat dann die Möglichkeit, es sich anzusehen und wenn es hilfreich ist, zu integrieren. Konkret: Wenn du möchtest, erstelle einen Post im mORMot Forum und beschreibe, was du genau gemacht hast mit einem Link zum Quelltext.

Zitat:

Zitat von charly52 (Beitrag 1520598)
Zitat:

Zitat von mytbo (Beitrag 1520584)
Arnaud ist hier im DP Forum angemeldet.

Was willst du mir damit sagen?

Er hat sich meine Artikel zum Thema mORMot gefischt, freundlich kommentiert und eingecheckt.

Zitat:

Zitat von charly52 (Beitrag 1520598)
Zitat:

Zitat von mytbo (Beitrag 1520584)
Und wenn ich schon beim Wünschen bin, die Verwendung von Virtual Treeview wäre fein. :wink:

Was genau meinst du? was für ein "Virtual Treeview" und wo soll das benutzt werden?

Mit dem TreeView Control kommt man nicht weit. Schon bei deutlich unter 100K Einträgen hängt sich alles auf (hatte das schon mal getestet). Der DocVariant lädt 100K in 50ms und auch für das Virtual Treeview ist diese Anzahl ein Klacks. In 200ms sollte die Anzeige stehen.

Bis bald...
Thomas

charly52 3. Apr 2023 17:54

AW: JSONTreeView - ein Node exportieren?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi

jetzt ist ein zipfile (SynJSONTVEditor.zip) mit dem 1ten Schritt (von mORMot1 nach mORMot2 umgebaut) hochgeladen.
Den DropBox Zugang von #8 gibt es nicht mehr!
Und die Aussage "Gibt immer mrNo zurück." stimmt auch nicht mehr.

@mytbo:

Deinen Wunsch nach VirtualTreeView verstehe ich aber immer noch nicht.
Willst du die gesammte Unit SynJSONTreeView.pas raus haben oder in dieser die Vererbung von

Delphi-Quellcode:
 TSynJSONTreeView = class(TTreeView)


durch sowas ersetzen

Delphi-Quellcode:
  TSynJSONTreeView = class(TVirtualStringTree)


Gruß Charly


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Seite 1 von 2  1 2      

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