Oberfläche, Ideen?

Rund um die LCL und andere Komponenten
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Oberfläche, Ideen?

Beitrag von pluto »

Hallo

Schon seit Längerer Zeit möchte ich eine neue Oberfläche für mein NoteManager2 erstellen.

Kurz zum Projekt: Es geht dabei um eine Notizen Manager, der die Notizen in einer Datenbank Einträgt. Es gibt einen Server, der Fungiert als Datenbank Client. Außerdem gibt es ein Client, dass ist zur Zeit eine Grafische Oberfläche.

Im Anhang ist die Alte Oberfläche, die mir aber nicht mehr gefällt, zum einen möchte ich in der neuen Oberfläche, Verzeichnisse und Notizen zusammen in einer ListView packen(ist einfach übersichtlicher) zum anderen möchte ich auch die Anzeige der Notizen verändern.
Im Moment ist es einfach nur ein TMemo. Ich Plane, hier aber eine andere Komponente einzusetzen.
Entweder zum Umschalten, so das es ein nur Lese Ansicht gibt, die dann Formatiert ist und eine Bearbeitungs Ansicht oder nur eine Bearbeitung Ansicht...

Ich habe die neue Oberfläche angefangen, bin mir aber noch nicht ganz sicher, wie ich weiter machen soll. Ich habe nun zum ersten mal zwei Frames verwendet um mehr Dynamic in die Oberfläche zu bekommen, dass es nicht nur ein Navigator Fenster gibt sondern vielleicht mehrere. Außerdem vielleicht auch nicht nur ein Editor-Fenster sondern mehrere.

Ich hoffe der eine oder andere hat, die eine oder andere Idee, wie so eine Oberfläche aussehen könnte.
Dateianhänge
NeuZustand_Frames.png
NeuZustand_MainFrom.png
IstZustand.png
MFG
Michael Springwald

siro
Beiträge: 731
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Oberfläche, Ideen?

Beitrag von siro »

Hallo Michael,

das händeln von vielen Dokumenten/Notizen ist keine leichte Aufgabe.
Ehrlich gesagt ich scheitere auch immer daran und hab noch keine wirklich gute Lösung.

Baumdiagramme finde ich recht übersichtich, das man ähnlich einen Windows Explorer Unterkategorien aufklappen kann.

In deinen Bildern vermisse ich eine Suchfunktion. Die finde ich persönlich SEHR wichtig.
Vermutlich sogar am Wichtigsten:
"Ich hatte da mal was aufgeschrieben, aber wie hiess das doch gleich ????"
Das war irgendwas mit mit DC-Converter. Letzes Jahr
Volltextsuche oder mit Optionen oder innerhalb eines Datum

Anhand des Datums könnte man auch Dokumente ausblenden.
Zeig mir nur die vom August letzen Jahres oder sowas.

Was ich gerne mach, ist zum Beispiel LINK Adressen in den Texten setzen
Die IDE für Lazarus kann man hier: ....... laden.
Leider musste ich immer wieder feststellen, dass die LINK Adressen sich ändern wenn der Seitenbetreiber die Seite umbaut.
Teils finde ich dann nichts mehr.
Falls das bei Dir auch mit rein soll, wäre es sinnvoll
Alle Dokumente durchsuchen und den angegebenen LINK ändern auf.
So hat man, sofern die neue Linkadresse gefunden wurde, gleich alle aktualisiert.

Ich habe z.B Datenblätter von Bauteilen abgelegt, das ist aber schon so umfangreich geworden,
dass ich schneller bin wenn ich bei Google den Bauteilenamen und pdf angebe. :wink:

Da fällt mir grad noch ein:
Kategorien ein/ausblenden.
Es taucht z.B. immer wieder das Ertellungsdatum auf. Man sollte bestimmte Dinge ausblenden können um die Oberfläche nicht zu überlasten.


Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

charlytango
Beiträge: 843
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: Oberfläche, Ideen?

Beitrag von charlytango »

Hi!

Eine gute GUI für ein Programm zu finden ist immer eine Herausforderung.
Nach einigen Tests verwende ich :

TDINoteBook
Component to create an TDI interface, similar to that described in Wikipedia 'Tabbed document interface'.
Used TExtendedNotebook as a base, with new methods/props to support TDI.
http://wiki.freepascal.org/TTDINotebook#Screenshot

Findet sich im Online Package Manager.

Mein Design ist eher klassisch mit einem Hauptformular samt einem Hauptmenü zur Programmsteuerung und einem TDINoteBook das die restliche Fläche des Formulars einnimmt.
Ins TDINotebook werden dynamisch über Menüsteuerung oder mittels Aktion in einem anderen Formular (z.B. Suchfunktion mit Ergebnisliste in einem Formular und ein Doppelklick auf eine Ergebnisliste öffnet ein weiteres Formular mit Detail oder Editansicht). Es sieht ungefär aus wie dein Design mit dem TPageControl, verwaltet aber in einer Objektliste alle offenen Formulare über die du dann auch die Kontrolle hast.
Jedes Formular kann wahlweise in die Tabreiter eingehängt werden oder auch frei fliegend sein. Trotzdem bleibt die Kontrolle beim TDINotebook und man kann keines "vergessen".
Man kann es auch so gestalten dass der Benutzer sich die Formulare frei oder eingebaut öffnen kann was dem Benutzer viele Möglichkeiten der Programmorganisation gibt (was meiner erfahrung nach nur von wenigen wirklich genutzt wird).

Das ganze noch etwas gemixt mit modalen Fenstern für bestimmte Funktionen und du hast ein ansprechende und sehr funktionale GUI.
Da und dort gibt es ein paar kleine Macken, aber damit kann man leicht leben.

Ist auf alle Fälle einen Blick wert.

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Oberfläche, Ideen?

Beitrag von pluto »

Baumdiagramme finde ich recht übersichtich, das man ähnlich einen Windows Explorer Unterkategorien aufklappen kann.

ja, der Meinung bin ich auch.

In deinen Bildern vermisse ich eine Suchfunktion. Die finde ich persönlich SEHR wichtig.

Klar, die wird es auch geben, dass Projekt entwickel ich erst seit ende letzten Jahres und ist wirklich recht komplex. Durch den TCP-Server und Client Struktur.
Ich möchte auch, eine User Verwaltung und Einschränkungen, die vergeben werden können.

Vermutlich sogar am Wichtigsten:
"Ich hatte da mal was aufgeschrieben, aber wie hiess das doch gleich ????"
Das war irgendwas mit mit DC-Converter. Letzes Jahr
Volltextsuche oder mit Optionen oder innerhalb eines Datum

Die Suchfunktion wollte ich erst später hinzufügen, wenn die anderen Dinge wie:
Hinzufügen von Notizen, das Hinzufügen von Verzeichnissen und so weiter Funktioniert.

Anhand des Datums könnte man auch Dokumente ausblenden.
Zeig mir nur die vom August letzen Jahres oder sowas.

Richtig. Ich plane auch in der Favoriten Liste, Automatische Einträge einzutragen wie z.b.
Welche Dokumente habe ich als letztes gelesen?
Welche Dokumente habe ich als letztes bearbeitet?
Welche Dokumente sind wie Markiert? Z.B. soll es verschiedene Markierungen geben wie Wichtig, oder Arbeit oder Verein...

Was ich gerne mach, ist zum Beispiel LINK Adressen in den Texten setzen
Die IDE für Lazarus kann man hier: ....... laden.

Ja, darum möchte ich in der neuen Version auch kein TMemo verwenden. KControlls bietet eine RichTextEditor an, jedoch erzeugt dieser bei mir ein 50%ige CPU Auslastung, nur weil der Cursor blinkt.... Sonst gefällt mir diese Komponente sehr gut, weil sie sehr viel kann.

Leider musste ich immer wieder feststellen, dass die LINK Adressen sich ändern wenn der Seitenbetreiber die Seite umbaut.
Teils finde ich dann nichts mehr.
Falls das bei Dir auch mit rein soll, wäre es sinnvoll

Aufjedenfall. Die Frage ist natürlich, wie man mit Toten Links umgeht.
Die Links soll sich aber auch auf Dokumente innerhalb eines Dokuments beziehen können.

Alle Dokumente durchsuchen und den angegebenen LINK ändern auf.
So hat man, sofern die neue Linkadresse gefunden wurde, gleich alle aktualisiert.

da finde ich die Lösung von LibreOffice nicht schlecht: Ersetzte Attribute wie z.b. Farbe, alles was vorher ROT war, soll nun Blau werden oder so... Aber auch hier soll es Vorlagen geben.

Ich habe z.B Datenblätter von Bauteilen abgelegt, das ist aber schon so umfangreich geworden,
dass ich schneller bin wenn ich bei Google den Bauteilenamen und pdf angebe.

Ich habe eine sehr große Text Datei, die ich immer noch Pflege mit sehr viel Grund Infos von Bauelementen.

Da fällt mir grad noch ein:
Kategorien ein/ausblenden.
Es taucht z.B. immer wieder das Ertellungsdatum auf. Man sollte bestimmte Dinge ausblenden können um die Oberfläche nicht zu überlasten.

Das wird es auch geben, dass nur das Angezeigt werden soll, was der User auch möchte.

Ist auf alle Fälle einen Blick wert.

Werde ich mir mal anschauen.

Mir ist da noch eine Idee gekommen, wie ich es versuchen werde:
Ich möchte, dass die ListView in einem PageControl ist, somit habe ich die Möglichkeit mehrere Verzeichnisse gleichzeitig zu Öffnen, dem Server ist das Egal.
Außerdem könnte es so auch Dynamische Fenster geben, jedes Fenster hat dann ein PageControl sowie eine ListView und eine Toolbar.

Der Editor Bereich wird ganz ähnlich aufgebaut: Rechts neben der ListView wird es ein Editor Bereich geben, diese wird in einer PageControl sein(im Moment ist das eine TListBox).
Auch dieses PageControl wird es als Fenster geben.

Somit kann der User entscheiden, ob das eingebettet sein soll oder nicht. Wie ich die Such Funktion hier einbaue, weiß ich derzeit noch nicht genau. Vielleicht auch als Extra Fenster, in etwa wie bei Lazarus, die finde ich nicht schlecht. Diese Fenster werden aber in diesen Fall nicht "Modalen" sein.

Was haltet ihr von der Idee?
MFG
Michael Springwald

Benutzeravatar
kupferstecher
Beiträge: 422
Registriert: Do 17. Nov 2016, 11:52

Re: Oberfläche, Ideen?

Beitrag von kupferstecher »

Du könntest dich an deinem Lieblingsdateibrowser orientieren. Im Grunde kommts ja auf das gleiche drauf an: Navigation (zur Notiz), Vorschau, Suche und bei Klick Öffnen, d.h. im Großen Fenster anzeigen.

So würde ich das lösen: Oben eine Menüleiste mit dem "Notizpfad" und Schaltflächen für neue Notiz, neuen Ordner, Suche usw.
Darunter, links die Baumstruktur, mittig die Notizen aus dem aktuellen Verzeichnis und Rechts die Notizansicht (Als wie im Dateibrowser~~).

Die Anmeldung würde ich auf eine eigene Seite bringen. Man braucht eigentlich nicht an "Forms" sparen. Statt Frames kannst du auch eine Form in eine übergordnete Form wie ein Frame einbauen, Stichwort "Form in Form".
Ich verwende eigentlich immer ein TNotebook über die ganze Form, um mehrere Gui-Seiten darstellen zu können. Teils auch getrennt ein TNotebook für das Menü. Darin kann man dann die Komponetnten direkt plazieren oder einen Frame oder eine Form einbinden.

Verschiedene Seiten sind zwar etwas aufwändiger als alles auf eine Ansicht zu packen, es wird aber gleich viel übersichtlicher!

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Oberfläche, Ideen?

Beitrag von pluto »

Du könntest dich an deinem Lieblingsdateibrowser orientieren. Im Grunde kommts ja auf das gleiche drauf an: Navigation (zur Notiz), Vorschau, Suche und bei Klick Öffnen, d.h. im Großen Fenster anzeigen.

Die Idee hatte ich auch schon.

So würde ich das lösen: Oben eine Menüleiste mit dem "Notizpfad" und Schaltflächen für neue Notiz, neuen Ordner, Suche usw.
Darunter, links die Baumstruktur, mittig die Notizen aus dem aktuellen Verzeichnis und Rechts die Notizansicht (Als wie im Dateibrowser~~).

Du würdest die Verzeichnisse und die Notizen trennen? Praktisch so, wie ich es jetzt habe.

Die Anmeldung würde ich auf eine eigene Seite bringen. Man braucht eigentlich nicht an "Forms" sparen. Statt Frames kannst du auch eine Form in eine übergordnete Form wie ein Frame einbauen, Stichwort "Form in Form".

Ich kenne im Moment auch nicht genau die Unterschiede zwischen Frames und Froms, ich habe mal damit Expermentiert, den Parent einfach zu wechseln z.b. kann ich ein From in ein Panel anzeigen lassen und sowas.

Ich verwende eigentlich immer ein TNotebook über die ganze Form, um mehrere Gui-Seiten darstellen zu können. Teils auch getrennt ein TNotebook für das Menü. Darin kann man dann die Komponetnten direkt plazieren oder einen Frame oder eine Form einbinden

Ist auch nicht schlecht, aber da finde ich TPageControl sinnvoller, hier könnte man die Tabs auch unsichtbar schalten....

Verschiedene Seiten sind zwar etwas aufwändiger als alles auf eine Ansicht zu packen, es wird aber gleich viel übersichtlicher!

Aufjedenfall.

Es gibt ein Editor unter Linux, der hat eine Praktische Funktion, die ich hin und wieder verwende: das Fenster zu teilen z.b. Horizontal und oder Vertikal.
Zur Zeit überlege ich noch ob und wie ich sowas mit einbauen kann.

Deine Idee mit der TNoteBook Komponente werde ich mir noch mal überlegen.
MFG
Michael Springwald

Antworten