AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Meinungen zu Textcursor und Formatierungen in eigenen Controls

Meinungen zu Textcursor und Formatierungen in eigenen Controls

Ein Thema von stahli · begonnen am 25. Jun 2015 · letzter Beitrag vom 29. Jun 2015
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#1

Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 10:59
Hallo zusammen,

ich arbeite an eigenen Controls und habe einige Fragen, welche Lösung bezüglich des Textcursors am sinnvollsten wäre…

Vielleicht hat jemand Zeit und Lust, sich das mal anzuschauen: http://youtu.be/_DQp6ghMgJU (8 Min)

Meine generellen Fragen:
1) Wie soll ich das Scrollen im Text organisieren. Rechts habe ich einen Scrollabstand zum rechten Rand eingerichtet. Soll ich dies auch links tun oder wie bisher immer so viel linksseitigen Text darstellen wie möglich?
2) Wie soll ich die Textcursorposition bei einem Zellenwechsel organisieren? Soll der Textcursor z.B. immer am Textende stehen oder soll ich den gesamten Text selektieren?
3) Wie soll ich Cursor links/rechts/hoch/runter bei Controls im Formular oder alternativ z.B. in Panels behandeln. Soll ein Control dadurch verlassen und ein anderes fokussiert werden - und welches?

Zusätzlich wüsste ich gern, ob jemand
4) Erfahrungen mit dem Aufbau von RichEdits und RichMemos hat und
5) ob meine Überlegung sinnvoll ist, die Daten für ein RichMemo in einer Objektlist vorzuhalten (z.B. TNewFont(aFont), TWord("André", X,Y,Width,Height), TSpace(1, X,Y,Width,Height), TNewFont(aOtherFont), TWord("Stahl", X,Y,Width,Height), TCR ) und dass das Memo dann dynamisch diesen „Textobjekten“ ihre aktuellen Positionsdaten zuweist, so dass man dann immer nachvollziehen kann, wo sich welches Textobjekt befindet…
Da ich die GUI von Null an aufbaue kann ich das letztlich so regeln, wie das am Sinnvollsten erscheint. Eine gewisse Nähe zu RTF- oder PDF-Formatierungen wäre auf jeden Fall wohl zweckmäßig.

Hat jemand Erfahrungen, Vorschläge, Tutorials?
Miniaturansicht angehängter Grafiken
caret.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (25. Jun 2015 um 11:10 Uhr) Grund: Screenshot ergänzt
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#2

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 11:32
Zu den generellen Fragen:

zu 1. und 2.

Wenn ich ein Control selbst erweitere oder erstelle, dann mach ich es immer so, dass ich dem Benutzer des Controls nachher immer so viele Wahlmöglichkeiten (Properties) gebe, wie irgendwie möglich.

Also würde ich hier eine Property "AutoSelect" einführen, die bei True dafür sorgt, dass der gesmate Text selektiert wird.

Eine Propertie TextScrollOffsetType welche festlegt, ob "links", "rechts", "links und rechts" oder "none" mit einem bestimmten Zeichenabstand gescrollt wird. Zusätzich noch eine Property TextScrollOffset, in der man die Anzahl der Zeichen einstellen kann.

Gleiches gilt für das vertikale Scrollen von Zelle zu Zelle. Der Programmierer kann in den Propertys den gewünschten Effekt einstellen, je nach dem wo er will, dass der Cursor stehen soll.
Also Werte wie "Start", "End" und "LastPos".


Es ist natürlich aufwändiger dies alles zu implementieren, aber damit gibst Du dem Programmierer alle Möglichkeiten, welche Du auch erdacht hast und dieser kann aber selbst entscheiden, was er für sinnvoll hält.

So brauchst Du nicht zu überlegen, was "das Beste" ist, sondern kannst die "Verantwortung" für das Verhalten Deiner Komponente auf den Programmierer der Endanwendung übertragen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 11:49
Natürlich soll es Eigenschaften geben, die gewählt werden können und die das Verhalten beeinflussen, aber diese sollen überschaubar bleiben.

Aber selbst wenn es Einflussmöglichkeiten gibt (in welcher Form auch immer) stellt sich die Frage, was das Standardverhalten sein soll.

Also würde ich die Fragestellung mal dahingehend präzisieren...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (25. Jun 2015 um 11:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 12:00
Als erstes würde ich fragen, beziehen sich die Fragen auf das LookAnFeel aus Usersicht, oder willst du Controls veröffentlichen, dann also auch aus Entwicklersicht?

Also zum scrollen:

ich würde es am besten empfinden, denn der Cursor zur Controlmitte geht, und erste dann das scollen beginnt. So habe ich den größt möglichen Überblick über den Text im Control. Und das Auge verbleigt ggf. länger auf eine Punkt.

Mit dem Scrollen in der Tabelle verhält sich das für meine Begriffe genauso.
Weil es für mich auch angenehmer ist, wenn sie das Scrollverhalten innerhalb der Anwendung immer gleich verhält.

Aus Entwicklersicht würde ich mir dann natürlich Properties wünschen, wie z.b. ScrollOrientation=(soLeft, soMiddle, soRight) und
SrollMargin = 5 für den Abstand bei soLeft oder soRight.

Beim Zellwechsel in vertikaler Richtung:
Aus Usersicht, würde ich es am angenehmsten empfingen, wenn der Cursor horizontal nahe zu an der gleichen Stelle bleiben würde.
Als wenn der Text in der alten Zelle 5 Zeichen lang ist, und der Cursor hinter dem 4. Zeichen steht, dann sollte er in der neuen Zelle auch hinter dem 4. Zeichen stehen, egal wie lang der Text in dieser Zelle auch ist (außer erst ist kürzer )

Beim Edit würde ich an der standardmäßigen Funktionalität nichts ändern. Außer vielleicht per Enter das nächste Control auswählen. Auch erst mal nur innerhalb des Parents, und erst dann weiter zum Parent.
Letztlich hängt diese aber auch von der Informationsverteilung auf der Form ab, d.h. wie sie sich dem User gegenüber darstellt.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#5

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 12:05
Aber selbst wenn es Einflussmöglichkeiten gibt (in welcher Form auch immer) stellt sich die Frage, was das Standardverhalten sein soll.
Als Standardverhalten setze ich immer das Verhalten, welches ich in der Klasse vorfinde, von dem eine Komponete abgeleitet ist.

Ist sie komplett neu geschrieben, also von TControl, TWinControl oder noch tiefer abgeleitet, dann schau ich mir das Grundverhalten eines vergleichbaren Controls an und nehme dieses als Standardverhalten.

Hierbei gilt für mich immer die Devise:
Standardverhalten = Verhalten, so wie es in jeder anderen Anwendung ohne "spezielle" Controls üblich und zu erwarten ist. Sei es nun von Windows oder Delphi vorgegeben.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 12:47
@Captnemo
Die Fragen beziehen sich auf die Nutzersicht.
Deine Anmerkungen sind sehr nachvollziehbar.
Ich habe derzeit für das Grid 1/5 der Gridhöhe als Scrollabstand definiert und im Edit 1/10 der Editbreite.
Der Programmierer soll eigentlich nicht jedes Control individuell einstellen müssen/dürfen.
Aber ich kann natürlich globale Optionen anbieten, so dass der Programmierer grundsätzliche Funktionalitäten (z.B. Scrollabstände oder Control-Wechsel über Cursor) vorgeben kann. Man kann dann natürlich auch noch dem User ermöglichen, diese Einstellungen nachträglich wieder zu überschreiben und in der Registry abzulegen).

Letztlich hängt diese aber auch von der Informationsverteilung auf der Form ab, d.h. wie sie sich dem User gegenüber darstellt.
Ja, das stimmt (leider). Ich suche dennoch eigentlich nach Möglichkeit nach einer generellen Lösung, so dass der Programmierer bei einzelnen Controls nicht so viel selbst Hand anlegen muss.


@BadenPower

Ich habe nur eine Zeichenfläche, auf der ich selbst alles regle. Ich leite von keinem Control ab.
An die gewohnten Funktionalitäten will ich mich schon halten, aber ich bin nicht gezwungen dazu. Wichtiger ist mir, dass alles gut zusammenspielt und dazu muss nicht alles identisch zu Windows laufen.
Zu welchem Windows eigentlich? VCL, WinForms, Browser, WPF? Es gibt ohnehin verschiedene Ansätze und Standards. Wichtig ist mir lediglich, dass die GUI in sich schlüssig und sehr komfortabel ist (für den User und auch für den Programmierer).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai
Online

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#7

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 14:16
1) Wie soll ich das Scrollen im Text organisieren. Rechts habe ich einen Scrollabstand zum rechten Rand eingerichtet. Soll ich dies auch links tun oder wie bisher immer so viel linksseitigen Text darstellen wie möglich?
Gar nicht so einfach zu beantworten. Denn was ist wichtiger? Texteingabe oder das Lesen von Text? Einerseits ist dieses Verhalten für das Lesen des Zelleninhalts ziemlich komfortabel. Andererseits empfände ich es als lästig, dass der Cursor irgendwo rechts festgetackert ist, wenn man einen Eingabefehler am Anfang des Textes bemerkt und diesen korrigieren und dorthin scrollen will.

Zitat:
2) Wie soll ich die Textcursorposition bei einem Zellenwechsel organisieren? Soll der Textcursor z.B. immer am Textende stehen oder soll ich den gesamten Text selektieren?
Wie in guten Editoren. ConTEXT und Notepad++ machen das so, dass sie versuchen, die Position wiederherzustellen. Ggf. noch optional einstellbar. Die Markierung würde ich aber in jedem Fall optional gestalten, denn hier kommt es darauf an, wie oft man den kompletten Text ersetzen muss.

Zitat:
3) Wie soll ich Cursor links/rechts/hoch/runter bei Controls im Formular
Auch hier: optional einstellbar, z.B. mit "Pfeiltasten wechseln Zelle" oder sowas.

Zu den anderen Fragen kann ich nichts beitragen.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 14:24
Interessant, welche Wünsche/Denkansätze es zu solch simplen Fragen gibt. Beim Lesen ist mir aufgefallen, daß ich für meine Zwecke mal den (Text)Cursor an Textanfang und mal am Textende bevorzuge. Ebenso ist das Scrollen sehr von der jeweiligen Anwendung abhängig. HexAnzeige z.B. einzeilig vertikal und 3 Stellig horizontal. Bei großen Textmengen bevorzuge ich das "AbsatzScrolling". Langer Rede kurzer Sinn Abstract, kann ich zu Deinem Problem wenig beitragen, da es meiner Meinung nach auch sehr auf die dargestellten Daten und die Arbeitsweise hiermit ankommt.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 14:34
Der Programmierer soll eigentlich nicht jedes Control individuell einstellen müssen/dürfen.
Aber ich kann natürlich globale Optionen anbieten, so dass der Programmierer grundsätzliche Funktionalitäten (z.B. Scrollabstände oder Control-Wechsel über Cursor) vorgeben kann.
müssen da gebe ich dir Recht. dürfen, das sehe ich anders. Wenn ein Control, das um einige Funktionen erweitert ist, verwendet wird, sollte der Entwickler immer die Möglichkeit haben, an von ihm gewünschten Stellen auch das Standardverhalten wieder herzustellen, oder das erweitere Feature nach seinen Wünschen zu gestallten. Mir fällt zwar gerade keine gutes Beispiel ein, aber es könnte ja sein, dass doch mal einer bei einzelnen Controls (ich meine jetzt die Edit's, nicht jede Zelle in StringGrid) eine andere Darstellung haben möchte.

Letztlich hängt diese aber auch von der Informationsverteilung auf der Form ab, d.h. wie sie sich dem User gegenüber darstellt.
Ja, das stimmt (leider). Ich suche dennoch eigentlich nach Möglichkeit nach einer generellen Lösung, so dass der Programmierer bei einzelnen Controls nicht so viel selbst Hand anlegen muss.
Das finde ich gut. Trotzdem kann es auch mal sein, dass man in der Programmierung diese Automatismen nicht kompromisslos hinnehmen möchte. Man stelle sich mal vor, innerhalb einer "normalen" Anordnung von Controls in einer Eingabeform befindet sich zwischen den Edit's, Combo's und Listboxen auch man eine GroupBox mit weiteren Edit's, die aber optionalen Inhalt behandeln. Dann möchte der eine Entwickler, dass von dem Edit über der Groupbox direkt zu dem Edit unter der Groupbox gesprungen wird. Ein andere Entwickler möchte aber, dass erst mal zu den Edit's in der Groupbox gesprungen wird.
Dafür gibt es doch schon die Taborder. Oder habe ich nicht verstanden, worauf du hinaus willst?

Beim Lesen ist mir aufgefallen, daß ich für meine Zwecke mal den (Text)Cursor an Textanfang und mal am Textende bevorzuge. Ebenso ist das Scrollen sehr von der jeweiligen Anwendung abhängig. HexAnzeige z.B. einzeilig vertikal und 3 Stellig horizontal. Bei großen Textmengen bevorzuge ich das "AbsatzScrolling". Langer Rede kurzer Sinn Abstract, kann ich zu Deinem Problem wenig beitragen, da es meiner Meinung nach auch sehr auf die dargestellten Daten und die Arbeitsweise hiermit ankommt.
Das sehe ich ähnlich. Beim Cursor auch erst jetzt, wo ich deine Anmerkung gelesen habe. Wenn man länger darüber nachdenkt, dann würde ich das gewünschte Verhalten sogar, (wie du oben schon erwähnt hast) teilweise von der darzustellen Information abhängig machen, nicht nur vom Datentyp. Weil die optimale Platzierung des Cursors ist ja abhängig von der zu erwartenden Reaktion des User, was er denn wohl am wahrscheinlichsten in dem Control machen will (Text ersetzen, ergänzen, vorne ergänzen oder hinten).
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#10

AW: Meinungen zu Textcursor und Formatierungen in eigenen Controls

  Alt 25. Jun 2015, 14:41
Interessant, welche Wünsche/Denkansätze es zu solch simplen Fragen gibt.
Daher bleib ich meiner Meinung treu und sage, wenn ich schon eine eigene Kompo erstelle, dann investiere ich dort hat 10 Stunden mehr und kann dann je nach Anwendung flexibel entscheiden (oder gar den User entscheiden lassen) wie etwas nachher funktionieren soll.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 Uhr.
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