Fragen zu TVirtualStringTree
Re: Fragen zu TVirtualStringTree
Ich hab's jetzt mal selbst probiert, und das funktioniert wie es sein soll - siehe Anhang. Vergleiche mal ganz pingelig genau die diversen Options, hier ist der VTV etwas unübersichtlich.
- Dateianhänge
-
stringlist_node.zip
- (2.81 KiB) 74-mal heruntergeladen
Re: Fragen zu TVirtualStringTree
wp_xyz hat geschrieben: So 14. Jan 2024, 16:26 Ich hab's jetzt mal selbst probiert, und das funktioniert wie es sein soll - siehe Anhang. Vergleiche mal ganz pingelig genau die diversen Options (auch beim Header!), hier ist der VTV etwas unübersichtlich.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Hol's der Geier, jetzt versteh ich die Welt nicht mehr: Alles lediglich kopiert und es geht - ABER kann ich Knoten nicht selektieren, außer ich setze TreeOptions.SelectionOptions.toAlwaysSelectNode, wodurch er aber keinen Subknoten macht wie bei dir.
Re: Fragen zu TVirtualStringTree
TreeOptions.SelectionOptions toExtendedFocus markieren --> man kann auch in Subnodes klicken
TreeOptions.MiscOptions toGridExtensions markieren --> man kann irgendwo in der Zelle klicken, nicht nur auf dem Text.
TreeOptions.MiscOptions toGridExtensions markieren --> man kann irgendwo in der Zelle klicken, nicht nur auf dem Text.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Hallo wp_xyz,
zuerst mal danke für den Markierungshinweis!
Dazu käme noch, dass der Knoten - wenn es doch sichtbare Werte sind wie z.B. Zeichen-/Wörter-/Seitenanzahl - die VST refresht werden sollte. Letzteres habe ich aber schon irgendwo gesehen, glaube ich.
zuerst mal danke für den Markierungshinweis!
In meinem bisherigen Programm kommt es häufig vor, dass der Wert einer Zelle per Programm geändert wird. Zum Beispiel gibt es in der Kapitelübersicht 80% nicht sichtbarer Spalten, die unterschiedlichste Werte zur dazugehörigen Szene enthalten. Es tut sich also sehr viel für den Anwender unsichtbar. Mit meinem Beispiel, wo ich die TStringList im Node-Record verwende, will ich direkt in diese Liste per Programm in bestimmte Spalten (=StringList[nnn] := irgendwas) Werte übergeben.wp_xyz hat geschrieben: So 14. Jan 2024, 16:13 Könntest du das in ein kleines Projekt packen? Wenn ich selbst versuche, das nachzuvollziehen, mache ich vielleicht etwa anders als du...
Ist das nicht das Column-Argument, das dem Event-Handlers übergeben wird?Jim Knopf hat geschrieben: So 14. Jan 2024, 15:33 Kann man irgendwie den Index der Spalten auslesen? Muss fast ein Trick sein, denn bei den Columns selbst habe ich nichts gefunden.
Dazu käme noch, dass der Knoten - wenn es doch sichtbare Werte sind wie z.B. Zeichen-/Wörter-/Seitenanzahl - die VST refresht werden sollte. Letzteres habe ich aber schon irgendwo gesehen, glaube ich.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Und zwei weitere Fragezeichen:
1. In deinem Beispiel wp_xyz, zeigt er in der Root mehr an und ich vermute, dass erst dadurch Unterknoten erzeugt werden. Unser Quelltext diesbezüglich ist gleich ...
... nur fügt er den Knoten bei mir einfach hinter dem Focused ein anstatt als Subnode.
Ich habe sämtliche Properties unserer Grids verglichen, finde aber keinen Unterschied. Auch die Suche nach 'Root' im Quelltext führte zu keinem Ergebnis.
2. Bisher ist mein Farbänderungsversuch für die Spaltentitel (Header) erfolglos. Nach meinem Dafürhalten sollte es Header.Background sein, ist es aber nicht. Bei den Spalten selbst gibt es aber nur die Farbe für die Spalte. Auch bei den Header.Options passt nichts zum Thema. Und bei den Colors gibt es nur HeaderHotColor. Allerdings wenn man auf den Spaltentitel klickt, dann zeigt er hier die Farbe an, die Ich unter Header.Background eingetragen habe.
1. In deinem Beispiel wp_xyz, zeigt er in der Root mehr an und ich vermute, dass erst dadurch Unterknoten erzeugt werden. Unser Quelltext diesbezüglich ist gleich ...
Code: Alles auswählen
Node := vt.AddChild(vt.FocusedNode);
... nur fügt er den Knoten bei mir einfach hinter dem Focused ein anstatt als Subnode.
Ich habe sämtliche Properties unserer Grids verglichen, finde aber keinen Unterschied. Auch die Suche nach 'Root' im Quelltext führte zu keinem Ergebnis.
2. Bisher ist mein Farbänderungsversuch für die Spaltentitel (Header) erfolglos. Nach meinem Dafürhalten sollte es Header.Background sein, ist es aber nicht. Bei den Spalten selbst gibt es aber nur die Farbe für die Spalte. Auch bei den Header.Options passt nichts zum Thema. Und bei den Colors gibt es nur HeaderHotColor. Allerdings wenn man auf den Spaltentitel klickt, dann zeigt er hier die Farbe an, die Ich unter Header.Background eingetragen habe.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Fragen zu TVirtualStringTree
Zum aktualisieren / refreshen des vst kannst Du vst.invalidate aufrufen.
Re: Fragen zu TVirtualStringTree
Ja, das sehe ich bei deinem Beispiel auch. Keine Ahnung, was da falsch ist. Versuche es Schritt für Schritt neu aufzubauen, basierend auf meinem Beispiel, und prüfe nach jedem Schritt ob die Nodes noch als Subnodes hinzugefügt werden.Jim Knopf hat geschrieben: Mo 15. Jan 2024, 10:09 1. ... nur fügt er den Knoten bei mir einfach hinter dem Focused ein anstatt als Subnode.
Ich habe sämtliche Properties unserer Grids verglichen, finde aber keinen Unterschied.
Generell ist die Idee hinter
Code: Alles auswählen
Node := VST.AddChild(ParentNode);
Na dann - viel Spaß... (Die Frage nach "ist das nötig?" verkneife ich mir...).Jim Knopf hat geschrieben: Mo 15. Jan 2024, 10:09 2. Bisher ist mein Farbänderungsversuch für die Spaltentitel (Header) erfolglos.
Was willst du ändern? Ich habe in https://stackoverflow.com/questions/323 ... ree-header eine funktionierende Anleitung gefunden, den ganzen Header einzufärben:
- Themed-Drawing (TreeOptions.PaintOptions toThemedAware) ausschalten.
- Den Header für Custom-Drawing anmelden: Header.Options hoOwnerDraw einschalten
- Im Event OnHeaderDrawQueryElements mitteilen, welche Header-Elemente man selbst zeichnen möchte (hpeBackground)
- Im Event OnAdvancedHeaderDraw den Hintergrund neu füllen, wenn das gewünschte Element dran ist.
- Vielleicht geht es auch einfacher...
Code: Alles auswählen
procedure TForm1.vtHeaderDrawQueryElements(Sender: TVTHeader;
var PaintInfo: THeaderPaintInfo; var Elements: THeaderPaintElements);
begin
Elements := [hpeBackground];
end;
procedure TForm1.vtAdvancedHeaderDraw(Sender: TVTHeader;
var PaintInfo: THeaderPaintInfo; const Elements: THeaderPaintElements);
begin
if (hpeBackground in Elements) then
begin
PaintInfo.TargetCanvas.Brush.Color := clFuchsia;
PaintInfo.TargetCanvas.FillRect(PaintInfo.PaintRectangle);
end;
end;
[EDIT]
Im Advanced-Demo wird Header-Drawing vorgeführt: Unit HeaderCustomDrawDemo, Projekt Advanced, Ordner Demos der VTV-Installation, bzw, wenn du den VTV verwendest, der bei Lazarus mit im Lieferumfang ist, dann ist das Projekt im Order Examples/VirtualTreeView/vst_advanced der Lazarus Installation.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Dankeschön für die viele Mühe!
In meinen vierzig selbstständigen IT-Jahren habe ich eine Erfahrung gemacht: Wenn etwas so richtig spießt, dann sollte man sich zwei Mal überlegen, ob der Weg der richtige ist. Ein Beispiel: Um die Jahrtausendwende haben wir in meiner Firma den 'Office-Manager' gebaut. Das war noch vor Windows XP und meine Leute haben, als das herauskam, gewitzelt: "Die Optik hat der Billi abgeschaut". Ich verwende das Din noch heute, weil ich nie ein besseres CRM gefunden habe - kann von Adressen über Mails und Termine bis zu Serienbriefen und -mails wirklich alles.

Aber es hat unglaublich gefuxt. Ich hatte mir nämlich eine 'andere' Optik in den Kopf gesetzt, wie man sieht. Da sind sicher 10.000 Stunden mehr hineingeflossen wegen der Optik. Und letztlich haben wir gar nicht so viel davon verkauft. Also in keinem Verhältnis. Irgendwie kommt es mir jetzt etwas ähnlich vor. Wenn ich mir allein die Geschichte mit dem Grid jetzt ansehe, dann wird mir ganz schwummerig. Hier als Vergleich das Befüllen eines Grids von DevExpress, wenn ich z.B. aus einer CSV-Datei heraus ein Grid fülle:
Mit den lächerlichen vier Zeilen werden die Positionen 0 bis 2 aus der CSV-Datei in die Spalten 1, 3 und 7 eines neu erstellten Knotens eingefügt die man durch benannte Indizes ansprechen kann, sich also nicht einmal einen Index merken muss. Dann kann man noch tl.SaveToFile sagen und das Grid ist auf der Platte. Sonst rein nix außer dem Zusammenklicken im Formular.
Okay, da muss ich wohl durch.
Aber heute erfahre ich, dass mein Editor in der seitenweisen Darstellung à la Word (siehe unten) - ich verwende TRichViewEdit und TSRichViewEdit von Sergey Tkachenko, wirklich sehr leistungsfähig - weder auf Windows noch auf Lazarus für andere Plattformen verfügbar. Der normale Editor schon - ab Herbst! - aber nicht der für diese seitenweise Darstellung, auf die die Leute einfach stehen. Auf die Idee kam gar nicht!

Jetzt muss ich mal meine Wunden lecken. Und dann ...?
In meinen vierzig selbstständigen IT-Jahren habe ich eine Erfahrung gemacht: Wenn etwas so richtig spießt, dann sollte man sich zwei Mal überlegen, ob der Weg der richtige ist. Ein Beispiel: Um die Jahrtausendwende haben wir in meiner Firma den 'Office-Manager' gebaut. Das war noch vor Windows XP und meine Leute haben, als das herauskam, gewitzelt: "Die Optik hat der Billi abgeschaut". Ich verwende das Din noch heute, weil ich nie ein besseres CRM gefunden habe - kann von Adressen über Mails und Termine bis zu Serienbriefen und -mails wirklich alles.

Aber es hat unglaublich gefuxt. Ich hatte mir nämlich eine 'andere' Optik in den Kopf gesetzt, wie man sieht. Da sind sicher 10.000 Stunden mehr hineingeflossen wegen der Optik. Und letztlich haben wir gar nicht so viel davon verkauft. Also in keinem Verhältnis. Irgendwie kommt es mir jetzt etwas ähnlich vor. Wenn ich mir allein die Geschichte mit dem Grid jetzt ansehe, dann wird mir ganz schwummerig. Hier als Vergleich das Befüllen eines Grids von DevExpress, wenn ich z.B. aus einer CSV-Datei heraus ein Grid fülle:
Code: Alles auswählen
L := TStringList.Create;
try
L.LoadFromFile('C:\Filename.csv');
for I := 0 to L.Count-1 do with tl.Add do
begin
Strings[tcId.Index] := StrExtrStr(L[I], 0):
Strings[tcTitle.Index] := StrExtrStr(L[I], 1):
Strings[tcWrap.Index] := StrExtrStr(L[I], 2):
end;
finally
L.Free
end;
Okay, da muss ich wohl durch.
Aber heute erfahre ich, dass mein Editor in der seitenweisen Darstellung à la Word (siehe unten) - ich verwende TRichViewEdit und TSRichViewEdit von Sergey Tkachenko, wirklich sehr leistungsfähig - weder auf Windows noch auf Lazarus für andere Plattformen verfügbar. Der normale Editor schon - ab Herbst! - aber nicht der für diese seitenweise Darstellung, auf die die Leute einfach stehen. Auf die Idee kam gar nicht!

Jetzt muss ich mal meine Wunden lecken. Und dann ...?
-
- Beiträge: 1058
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: Fragen zu TVirtualStringTree
Das kann ich nur zu gut nachfühlen. Ich kann eine Applikation in der so etwa 8 Mannjahre stecken auch nicht wirklich nach Lazarus migrieren weil es die damals eingesetzten Komponenten nicht für Lazarus gibt (denen ich wirklich nachtrauere).
Nicht für Lazarus verfügbar:
DevExpress Suite (mit Quantumgrid und etlichen anderen Goodies)
WPTools
ReportBuilder
Korzh Simple Query
Teilweise für Lazarus verfügbar:
TxQuery (da gäbe es zumindest eine Möglichkeit)
Die ganze Turbopower Riege (obwohl sich wp_xyz sehr bemüht)
JVCL (auch hier Dank an wp_xyz)
Mir ist schon klar dass der Komponentenmarkt (besonders für Pascal-oide) nur ein recht schmales und daher unrentables Marktsegment ist. Das müsste auch das Entwicklungssystem irgendwie fördern.
Denn ich bin der (vermutlich einsamen) Meinung dass der Erfolg eines Entwicklungssystems wie Lazarus/FPC auch wesentlich von der Verfügbarkeit hochwertiger Komponenten abhängt. Da wäre ich auch bereit dafür Geld in die Hand zu nehmen.
Leider läuft die Politik von Lazarus nicht in eine Richtung in der ich einen Erfolg (wie immer man den definieren möchte) erkennen kann. Mir scheint, da ist viel Kraft vorhanden, die man aber nicht auf die Straße bekommt.
Bitte nicht in den falschen Hals bekommen. Ich liebe Lazarus und es ist mittlerweile das Entwicklungssystem meiner Wahl. Doch die dahinter liegende Strategie/Politik/Masterplan (so sie denn überhaupt existiert) ist einfach zu kurz gedacht und bringt das Projekt kaum weiter.
Auch ein (so großes) OpenSource-Projekt braucht eine finanzielle Basis, eine Strategie samt Marketing und Kommunikation das weit über das hinausgeht was derzeit existiert oder auch nur angedacht ist.
Meinem alten Kunden (also den mit dem 8MJ-Projekt) hätte ich Lazarus als Basis nicht wirklich erklären können. Solche Kunden brauchen die vermeintliche Sicherheit einer vermeintlichen Kontinuität,
Zuletzt geändert von charlytango am Mi 17. Jan 2024, 16:03, insgesamt 1-mal geändert.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Ich finde das alles supertraurig!
Nicht, weil meine Hoffnungen zunichte gemacht sind (schon auch, natürlich), sondern weil sich so viele Leute engagieren und zu helfen versuchen, (für mich) allen voran wp_xyz (bei der Gelegenheit: Was für eine Beziehung/Geschichte hast du zu Lazarus?) und dann Leute wie ich trotzdem wieder aufgeben müssen, weil etwas einfach nicht realisierbar ist.
Ich sehe das auch ähnlich wie Charlytango: Ein Gesamtkonzept sollte zentral organisiert sein, das gewisse Grundvoraussetzungen bietet. Dazu gehören neben Edits, Panels und Labels mittlerweile unbedingt eine leistungsfähige, aber einfache TreeList à la DevExpress, eine Komponente à la FormStorage von seinerzeit RX, jetzt Jedi. Gut wäre sicher auch eine RTF-Komponente, die das Übliche bis hin zu Listen kann - Tabellen kann man notfalls auch als Grafiken einfügen. Nur ist bei Letzterem eine seitenweise Darstellung notwendi (darauf stehen die Anwender!), was aber (hat mir Sergey Tkachenko erzählt) zum Rendern unterschiedliche Engines pro OS braucht - das ist natürlich hart. Vieles andere, glaube ich, lässt sich mit Eigeneinsatz lösen. Wir hatten in meiner früheren Firma uns auch die Datenanbindung von Pervasive (ehemals BTrieve) zum Developer-Express-Grid selbst gemacht bis hin zu datenbankverbundenen eigenen Edits. Aber alles selbst machen ist einfach zu viel und unrationell.
Nehmen wir mal das TVirtualStringTree. Es kann jede Menge, das ist beeindruckend. Aber vom Handling her - bitte nicht böse sein - ist es eine Katastrophe. Auch andere TreeLists sind diesbezüglich nicht viel besser, können dafür aber weniger. Warum haben das nur DevExpress so auf die Reihe bekommen, wie es einfach handhabbar ist? All diese Komponenten, in denen so viel Arbeit steckt, erinnern mich an die Cartoons zu Programmen, die jeder kennt: Was der Kunde wollte, der Berater verstand usw. Als Komponentenhersteller ist der andere Programmierer der 'Kunde'. Und wir alle wissen ja, dass sich Kunden nicht in ein Programm hineindenken, sondern es intuitiv handhaben wollen und auch können sollten. Das erlebe ich mit meinem Patchwork täglich und investiere viel Zeit in die Usability. Das scheint mir oft nicht der Fall zu sein. Allein wenn ich an die irre umfangreiche 'Hilfe' zu VST denke! Seitenweises Scrollen und man findet doch nicht, was man braucht. So, wie es in der Delphi5-Hilfe war ist das optimal: Properties, Methoden, Events und dabei evtl. wovon sie abgeleitet worden sind. Basta, mehr braucht man zum Anwenden nicht, da nützt auch die schiere Menge nichts.
Natürlich ist es leicht, groß zu reden bei einem Open-Source-Projekt. Ich frage mich eh immer, wovon all die engagierten Leute denn leben? Aber was wäre mit einer normalen Firma - oder wenigstens einem Verein, wenn sie keinen Gewinn machen soll - die eng mit den Lazarus-Entwicklern zusammenarbeiten - und diese Zusatzsachen schnitzen und verkaufen? Ich denke, jeder Programmierer würde etwas Geld in die Hand nehmen, solange es nicht unverschämt ist wie Delphi oder Developer Express. Oder vielleicht mehr Zusammenarbeit mit Leuten wie Sergey Tkachenko mit seiner Editor-Suite. Der verkauft das ja auch uns ich bezahle gern etwas dafür.
Ich finde das Lazarus-Projekt wunderbar, wirklich! Pascal ist eine strukturierte Sprache und auch die IDE ist gut gelungen - um einiges besser als das neue Delphi, finde ich. Vielleicht lässt sich ja eine Möglichkeit finden, die Probleme der direkten Open-Source-Demokratie in den Griff zu bekommen, indem sich eine ordnende Hand findet? Bitte auch hier um Nachsicht, wenn ich so rede, ich kenne ja keinerlei Hintergründe.
Vielen Dank euch unermüdlichen Helferlein! Ich würde mich freuen, wenn ich doch einmal wieder hier landen könnte, um echt aufzusetzen. Ich werde versuchen, lose dabei zu bleiben, nur jetzt ist leider zum zweiten Mal doch nichts geworden.
Herzliche Grüße
Martin
Nicht, weil meine Hoffnungen zunichte gemacht sind (schon auch, natürlich), sondern weil sich so viele Leute engagieren und zu helfen versuchen, (für mich) allen voran wp_xyz (bei der Gelegenheit: Was für eine Beziehung/Geschichte hast du zu Lazarus?) und dann Leute wie ich trotzdem wieder aufgeben müssen, weil etwas einfach nicht realisierbar ist.
Ich sehe das auch ähnlich wie Charlytango: Ein Gesamtkonzept sollte zentral organisiert sein, das gewisse Grundvoraussetzungen bietet. Dazu gehören neben Edits, Panels und Labels mittlerweile unbedingt eine leistungsfähige, aber einfache TreeList à la DevExpress, eine Komponente à la FormStorage von seinerzeit RX, jetzt Jedi. Gut wäre sicher auch eine RTF-Komponente, die das Übliche bis hin zu Listen kann - Tabellen kann man notfalls auch als Grafiken einfügen. Nur ist bei Letzterem eine seitenweise Darstellung notwendi (darauf stehen die Anwender!), was aber (hat mir Sergey Tkachenko erzählt) zum Rendern unterschiedliche Engines pro OS braucht - das ist natürlich hart. Vieles andere, glaube ich, lässt sich mit Eigeneinsatz lösen. Wir hatten in meiner früheren Firma uns auch die Datenanbindung von Pervasive (ehemals BTrieve) zum Developer-Express-Grid selbst gemacht bis hin zu datenbankverbundenen eigenen Edits. Aber alles selbst machen ist einfach zu viel und unrationell.
Nehmen wir mal das TVirtualStringTree. Es kann jede Menge, das ist beeindruckend. Aber vom Handling her - bitte nicht böse sein - ist es eine Katastrophe. Auch andere TreeLists sind diesbezüglich nicht viel besser, können dafür aber weniger. Warum haben das nur DevExpress so auf die Reihe bekommen, wie es einfach handhabbar ist? All diese Komponenten, in denen so viel Arbeit steckt, erinnern mich an die Cartoons zu Programmen, die jeder kennt: Was der Kunde wollte, der Berater verstand usw. Als Komponentenhersteller ist der andere Programmierer der 'Kunde'. Und wir alle wissen ja, dass sich Kunden nicht in ein Programm hineindenken, sondern es intuitiv handhaben wollen und auch können sollten. Das erlebe ich mit meinem Patchwork täglich und investiere viel Zeit in die Usability. Das scheint mir oft nicht der Fall zu sein. Allein wenn ich an die irre umfangreiche 'Hilfe' zu VST denke! Seitenweises Scrollen und man findet doch nicht, was man braucht. So, wie es in der Delphi5-Hilfe war ist das optimal: Properties, Methoden, Events und dabei evtl. wovon sie abgeleitet worden sind. Basta, mehr braucht man zum Anwenden nicht, da nützt auch die schiere Menge nichts.
Natürlich ist es leicht, groß zu reden bei einem Open-Source-Projekt. Ich frage mich eh immer, wovon all die engagierten Leute denn leben? Aber was wäre mit einer normalen Firma - oder wenigstens einem Verein, wenn sie keinen Gewinn machen soll - die eng mit den Lazarus-Entwicklern zusammenarbeiten - und diese Zusatzsachen schnitzen und verkaufen? Ich denke, jeder Programmierer würde etwas Geld in die Hand nehmen, solange es nicht unverschämt ist wie Delphi oder Developer Express. Oder vielleicht mehr Zusammenarbeit mit Leuten wie Sergey Tkachenko mit seiner Editor-Suite. Der verkauft das ja auch uns ich bezahle gern etwas dafür.
Ich finde das Lazarus-Projekt wunderbar, wirklich! Pascal ist eine strukturierte Sprache und auch die IDE ist gut gelungen - um einiges besser als das neue Delphi, finde ich. Vielleicht lässt sich ja eine Möglichkeit finden, die Probleme der direkten Open-Source-Demokratie in den Griff zu bekommen, indem sich eine ordnende Hand findet? Bitte auch hier um Nachsicht, wenn ich so rede, ich kenne ja keinerlei Hintergründe.
Vielen Dank euch unermüdlichen Helferlein! Ich würde mich freuen, wenn ich doch einmal wieder hier landen könnte, um echt aufzusetzen. Ich werde versuchen, lose dabei zu bleiben, nur jetzt ist leider zum zweiten Mal doch nichts geworden.
Herzliche Grüße
Martin
Re: Fragen zu TVirtualStringTree
Ich denke, du gibst zu früh auf. Wenn man genau die Anforderung kennt, bin ich sicher, dass man auf der Basis des VTV sowas wie deinen DevExpress-Tree bauen kann (denn etwas anderes können die auch nicht gemacht haben). Für die RichText-Ausgabe gibt es TRichView bzw. wahrscheintlich besser KMemo; du müsstest nur einmal prüfen, ob sie deine Anforderungen erfüllen. FormStorage ist in Lazarus vorhanden, was ist das Problem damit?
Du fragst nach meiner Beziehung zu Lazarus. Ich bin User wie alle anderen auch. Allerdings habe ich mich anfangs sehr in TAChart und fpspreadsheet engagiert und mit viele Codevorschläge eingereicht, so dass man sich entschieden hat, mich ins Lazarus-Team aufzunehmen, wo ich mich hauptsächlich um (einige) Komponenten und die CCR-Landschaft kümmere.
Du fragst nach meiner Beziehung zu Lazarus. Ich bin User wie alle anderen auch. Allerdings habe ich mich anfangs sehr in TAChart und fpspreadsheet engagiert und mit viele Codevorschläge eingereicht, so dass man sich entschieden hat, mich ins Lazarus-Team aufzunehmen, wo ich mich hauptsächlich um (einige) Komponenten und die CCR-Landschaft kümmere.
- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Dass es dann so einfach funktioniert wie oben beschrieben? Hm ...wp_xyz hat geschrieben: Di 16. Jan 2024, 13:31 Wenn man genau die Anforderung kennt, bin ich sicher, dass man auf der Basis des VTV sowas wie deinen DevExpress-Tree bauen kann
KMemo ist ganz nett, aber offenbar nicht ansatzweise mit TRichView vergleichbar. Das Freeware-TRichView ist nicht vergleichbar mit der kommerziellen Version. Außerdem geht es mir mehr um TSRichView, den Wrapper, der den Text seitenweise wie Word darstellt (siehe der eine Screenshot von weiter vorne). Dieser Editor ist das Herzstück von Patchwork, weil es ja um ein Programm geht, mit dem man Romane, Serien, Sachbücher usw. schreibt. TRichView kann direkt nach Word und HTML speichern, kann Kopf- und Fußzeilen und wir haben uns eine Schnittstelle zum Duden gemacht. Das alles habe ich bis dato nirgends gefunden, und schon gar nicht plattformübergreifend.wp_xyz hat geschrieben: Di 16. Jan 2024, 13:31 Für die RichText-Ausgabe gibt es TRichView bzw. wahrscheintlich besser KMemo; du müsstest nur einmal prüfen, ob sie deine Anforderungen erfüllen.
Sorry, hab ich nicht gefunden. Ein eigenes Package? Wenn ja, welches?wp_xyz hat geschrieben: Di 16. Jan 2024, 13:31 FormStorage ist in Lazarus vorhanden, was ist das Problem damit?
Für das Grid hätte ich ja noch einiges in Kauf genommen, aber der Editor ist leider das KO-Kriterium geworden.
Re: Fragen zu TVirtualStringTree
Wenn man Jahre mit so einer Software verbringt, könnte man ja auch auf die Idee kommen, die Komponente selber zu schreiben?Jim Knopf hat geschrieben: Di 16. Jan 2024, 14:37 KMemo ist ganz nett, aber offenbar nicht ansatzweise mit TRichView vergleichbar. Das Freeware-TRichView ist nicht vergleichbar mit der kommerziellen Version. Außerdem geht es mir mehr um TSRichView, den Wrapper, der den Text seitenweise wie Word darstellt (siehe der eine Screenshot von weiter vorne). Dieser Editor ist das Herzstück von Patchwork, weil es ja um ein Programm geht, mit dem man Romane, Serien, Sachbücher usw. schreibt. TRichView kann direkt nach Word und HTML speichern, kann Kopf- und Fußzeilen und wir haben uns eine Schnittstelle zum Duden gemacht. Das alles habe ich bis dato nirgends gefunden, und schon gar nicht plattformübergreifend.
So wie du das RichView im Screenshot oben einsetzt, benötigst du ja nicht mal Textformatierung etc.
Ich frage mich allerdings ein wenig nach dem Zweck. Ein Wysiwyg Layout ist das ja auch nicht.
Es fehlen Silbentrennung, Erstzeileneinzüge, Absatzkontrolle etc. oder anders gesagt: Gedruckt wird es eh anders aussehen, also warum sollte man so tun, als hätte man den Seitenumbruch "im Griff"?
Ich habe vor Jahren einmal eine "Machbarkeitsstudie" einer solchen Komponente gecodet, die aber viel mehr können sollte, fast wie ein Word oder ein Browser.
Es hat im Prinzip funktioniert, ich bin dann aber an meinem eigenen Anspruch erstickt.

- Jim Knopf
- Beiträge: 98
- Registriert: So 18. Mai 2014, 15:16
- OS, Lazarus, FPC: Win10
- CPU-Target: 64Bit
- Wohnort: Klagenfurt
- Kontaktdaten:
Re: Fragen zu TVirtualStringTree
Ich habe mich auch nicht bemüht, abzubilden, was die Komponente alles kann, sondern lediglich schnell einen Screenshot vom Schreibbereich genommen, der gerade offen war. Natürlich ist es WYSIWYG mit allen möglichen Formatierungsoptionen. Silbentrennung macht beim Schreiben selbst keinen Sinn, das Manuskript wird erst bei Bedarf zu einem druckfertigen Gesamtdokument und/oder eBook kompiliert. So sieht dieses Gesamtdokument aus, das du als PDF ausdrucken und der Druckerei schicken kannst.theo hat geschrieben: Di 16. Jan 2024, 15:10So wie du das RichView im Screenshot oben einsetzt, benötigst du ja nicht mal Textformatierung etc.
Ich frage mich allerdings ein wenig nach dem Zweck. Ein Wysiwyg Layout ist das ja auch nicht.
Es fehlen Silbentrennung, Einzüge, Absatzkontrolle etc. oder anders gesagt: Gedruckt wird es eh anders aussehen, also warum sollte man so tun, als hätte man den Seitenumbruch "im Griff"
