Delphi-PRAXiS

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/)
-   -   Stringgrid und Accelerators (https://www.delphipraxis.net/186114-stringgrid-und-accelerators.html)

idefix2 4. Aug 2015 20:28

Stringgrid und Accelerators
 
Eben ist mir eine sehr lästige Eigenschaft des Stringgrids aufgefallen, die ich gerne abstellen würde - möglichst ohne in den Stringgrid-Sources herumzuhacken:

Wenn der Text eines Stringgridfeldes das Zeichen & enthält, dann wird das so wie in Labels angezeigt: & erscheint nicht, dafür wird das darauf folgende Zeichen unterstrichen dargestellt, als wäre es ein Accelerator. Kann man das irgendwie abschalten?

mkinzler 5. Aug 2015 05:03

AW: Stringgrid und Accelerators
 
Am Einfachsten alle & durch && ersetzen.

baumina 5. Aug 2015 06:37

AW: Stringgrid und Accelerators
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kann ich mit meinem XE nicht nachvollziehen.

idefix2 5. Aug 2015 06:58

AW: Stringgrid und Accelerators
 
Zitat:

Zitat von mkinzler (Beitrag 1311043)
Am Einfachsten alle & durch && ersetzen.

Ja, das funktioniert. Aber gibt es da nichts Besseres, ich meine, kann man dem Stringgrid den Unsinn nicht abgewöhnen?
Das sind Daten, wer kommt auf die Idee, dort Accelerators hinzumalen?


Zitat:

Zitat von baumina (Beitrag 1311050)
Kann ich mit meinem XE nicht nachvollziehen.

Hmm, dann scheinen sie irgendwann nach Delphi 2009 draufgekommen zu sein, dass das keine so gute Idee ist.

baumina 5. Aug 2015 07:06

AW: Stringgrid und Accelerators
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich kann das auch nicht mit meinem Delphi 2007 nachvollziehen.

idefix2 5. Aug 2015 07:34

AW: Stringgrid und Accelerators
 
Ich habe keine Ahnung, in welcher Version der Unsinn eingebaut worden ist und in welcher er wieder entfernt worden ist. Aber mein Delphi 2009 macht das so.

baumina 5. Aug 2015 07:39

AW: Stringgrid und Accelerators
 
Ich wollte dich auch nur dazu verleiten es ebenfalls in einem Mini-Beispiel-Programm auszuprobieren, nicht dass da was ganz anderes bei dir reinspielt. Aber das wirst du ja dann bestimmt schon gemacht haben.

idefix2 5. Aug 2015 08:12

AW: Stringgrid und Accelerators
 
Ehrlich gesagt, nein.
Eigentlich kann da nichts anderes hineinspielen, so komplex ist die Anwendung nicht. Die Daten vom Stringgrid werden sonst normal angezeigt, nur statt dem & wird das nächste Zeichen (eine Leerstelle) unterstrichen. Aber du hast recht, ich checke das noch einmal mit einem Stringgrid, mit dem sonst gar nichts passiert.

Auf die Schnelle hat das Verdoppeln des & das Problem gelöst, ziemlich absurd scheint es mir trotzdem zu sein.


edit:
Es wird spannend: ich habe in einem Testprojekt eine neues Stringgrid auf das Hauptformular gelegt, da macht er den Unsinn tatsächlich nicht. Jetzt bin ich neugierig, welche Einstellung dafür verantwortlich ist.

Sherlock 5. Aug 2015 08:41

AW: Stringgrid und Accelerators
 
Das ist ja jetzt einfach: "Components to code" für beide durchführen und vergleichen...

Sherlock
- der auf die Schnelle keine verdächtige Option gesehen hat

idefix2 5. Aug 2015 08:51

AW: Stringgrid und Accelerators
 
Zitat:

Zitat von idefix2 (Beitrag 1311077)
Eigentlich kann da nichts anderes hineinspielen, so komplex ist die Anwendung nicht.

Offenbar neige ich gelegentlich zu einer gewissen Betriebsblindheit. :twisted:
Natürlich hat da etwas ganz anderes hineingespielt, aber das habe ich vor einer ganzen Weile gemacht und inzwischen komplett vergesssen. Das Stringgrid ist nicht schuld, denn es wird mit Ownerdraw ausgegeben.
Verantwortlich für den Unsinn ist die Windows-Routine DrawText, die ich für die Ausgabe der einzelnen Stringgrid-Felder verwende. Und Drawtext braucht das Bit DT_NOPREFIX im Parameter aFormat gesetzt, damit es das bleiben lässt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:28 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