- Einführung
-
Im Grunde handelt es sich bei der HexTextBox nur um ein
„Abfallprodukt” für ein anderes Projekt. Jedoch haben sich im Laufe
ihrer Entwicklung so viele Features und Funktionen ergeben, dass es jetzt als mehr
als angebracht erscheint, hierfür eine separate Seite zu spendieren.
- Beschreibung
-
Eine Woche intensiver Suche nach einer passenden hexadezimalen Editbox sowie der
daran anschließende verzweifelte Versuch, die Standard–Textbox von Windows
dazu zu bringen, das zu tun, was sie tun soll, führten leider zu keinem zufriedenstellenden
Ergebnis. Somit war ich gezwungen, eine eigene einzeilige Editbox für hexadezimale
Werte zu implementieren. Hier nun das fertige Ergebnis.
Da es sich bei der HexTextBox um eine in C# geschriebene
Windows Forms Komponente handelt, kann diese nur sehr
schlecht darstellt werden. Daher zeigt folgende Abbildung das Programm, mit dessen
Hilfe die Komponente entwickelt und auch getestet wurde.
Die Fülle der im oben gezeigten Testprogramm vorhandenen Bedienelemente lässt
erahnen, wie viel an Funktionalität die HexTextBox
einem Benutzer zur Verfügung stellt. Daher sollte man das Testprogramm auf
jeden Fall mal ausprobieren und nicht nur, um zu sehen, was alles möglich ist.
An dieser Stelle erscheint nun ein entsprechender Hinweis zum Download erforderlich
zu sein. Der oben verfügbare Quellcode enthält nur das Control und nicht
wie sonst üblich den Code des gesamten Programms! Jedoch ist in beiden Downloads
die Klassenreferenz in Form einer Hilfedatei enthalten.
- Features
-
Neben den offensichtlichen Features, wie die Wahl der Schriftart und –größe
sowie das Anpassen von Vordergrund– und Hintergrundfarbe, verfügt die
HexTextBox auch über die Möglichkeit der Manipulation
der Eingabemarke, des sogenannten Carets.
Weitere Features sind zum Beispiel die Möglichkeit der Wahl des Zeichens, das
zur Trennung zwischen den einzelnen hexadezimalen Werten dargestellt wird. Auch
ist die Verwendung eines Cue–Banners, also die Anzeige eines Hinweistextes,
solange noch keine Daten eingeben wurden, möglich. Die Unterstützung von
Rückgängig und Wiederherstellen ist ebenfalls gegeben.
Natürlich werden auch diverse Tasten und Tastenkombinationen von der Komponente
HexTextBox unterstützt, die an dieser Stelle einmal
aufgelistet werden sollen. Jedoch sei vorab noch bemerkt, dass die Beschreibung
aller Tasten sowie Tastenkombinationen ebenfalls Bestandteil der im Download enthaltenen
Hilfedatei ist.
Tasten
|
Beschreibung
|
ESC
|
Diese Taste löst die aktuelle Markierung auf.
|
HOME
|
Mit dieser Taste springt das Caret von seiner derzeitigen Stelle an die erste mögliche
Eingabeposition. Wird zusätzlich noch SHIFT gedrückt, dann werden
alle dazwischenlegenden Werte markiert.
|
END
|
Mit dieser Taste springt das Caret von seiner derzeitigen Stelle an die letzte mögliche
Eingabeposition. Wird zusätzlich noch SHIFT gedrückt, dann werden
alle dazwischenlegenden Werte markiert.
|
LEFT
|
Diese Taste bewegt das Caret um eine Position nach links. Wird zusätzlich auch
noch CTRL gedrückt, dann springt das Caret zum Anfang des linken Wertes.
Wenn anstatt SHIFT gedrückt wird, dann wird abhängig von der derzeitigen
Position des Carets entweder der aktuelle Wert oder der nächste Wert links
markiert.
|
RIGHT
|
Diese Taste bewegt das Caret um eine Position nach rechts. Wird zusätzlich
auch noch CTRL gedrückt, dann springt das Caret zum Anfang des rechten
Wertes. Wenn anstatt SHIFT gedrückt wird, dann wird der aktuelle Wert
markiert.
|
INSERT
|
Diese Taste schaltet zwischen Einfügen und Überschreiben hin und her.
|
DELETE
|
Diese Taste löscht alles, was im Augenblick markiert ist. Ist zurzeit nichts
markiert, wird beim ersten Drücken der aktuelle Wert zunächst markiert
und erst beim zweiten Drücken dieser Taste gelöscht.
|
BACKSPACE
|
Mit dieser Taste wird das Zeichen links vom Caret durch eine Null ersetzt. Wird
zusätzlich auch noch CTRL gedrückt, dann werden alle Zeichen des
aktuellen Wertes durch Nullen ersetzt. Werden stattdessen CTRL und SHIFT
gedrückt, dann wird der aktuelle Wert komplett gelöscht, das vergleichbar
mit der Verwendung der Taste DELETE ist.
|
TAB
|
Mit Hilfe dieser Taste springt man zur nächsten Komponente. Wird zusätzlich
auch SHIFT gedrückt, dann wird natürlich zur vorherigen Komponente
gesprungen.
|
APPS
|
Mit dieser Taste öffnet man das Kontextmenü, das dann direkt unterhalb
der aktuellen Position des Carets erscheint. Diese Taste ist auch bekannt als Application Key, die rechts von der Leertaste gefunden werden
kann. Das Kontextmenü kann aber auch mit der Tastenkombination SHIFT+F10
geöffnet werden.
|
Shortcuts
|
Beschreibung
|
CTRL+A
|
Diese Tastenkombination markiert alle verfügbaren Werte.
|
CTRL+C
|
Diese Tastenkombination kopiert alle derzeit markierten Werte und speichert sie
in der Windows–Zwischenablage. Hierbei werden die Daten als hexadezimale Zeichenfolge
kopiert.
|
CTRL+X
|
Diese Tastenkombination schneidet alle momentan markierten Werte aus und speichert
sie in der Windows–Zwischenablage. Hier werden die Daten ebenfalls als hexadezimale
Zeichenfolge gespeichert.
|
CTRL+V
|
Mit dieser Tastenkombination kann der momentane Inhalt der Windows–Zwischenablage
an der aktuellen Position eingefügt werden. Enthält hierbei die Zwischenablage
eine hexadezimale Zeichenfolge, so wird sie genauso übernommen. Anderenfalls
werden die einzelnen Zeichen der einzufügenden Zeichenfolge zuvor in ihre hexadezimale
Entsprechung umgewandelt!
|
CTRL+Z
|
Mit dieser Tastenkombination können die letzten Änderungen wieder rückgängig
gemacht werden.
|
CTRL+Y
|
Mit dieser Tastenkombination können die letzten Änderungen wieder hergestellt
werden.
|
CTRL+U
|
Diese Tastenkombination schaltet zwischen der Verwendung von Groß– oder
Kleinbuchstaben um.
|
An dieser Stelle vielleicht noch ein weiterer Hinweis zum oben verfügbaren
Download. Wie bereits erwähnt enthält der Quellcode, neben der Hilfedatei,
nur eine einzelne Quelldatei, die wiederum den vollständigen Quelltext der
Komponente beinhaltet. Diese Quelldatei kann man dann problemlos in seine Projekte
einbinden und nach belieben modifizieren.
Wem dies nicht zusagt, der hätte stattdessen auch die Möglichkeit, die
DLL aus dem Testprogramm in seinen Projekten zu verwenden. Denn diese DLL enthält
nichts anderes als die Quelldatei der Komponente! Nun könnte sich Mancher fragen,
warum dem so ist. Der Grund ist recht einfach zu erklären. Denn zur Erstellung
der Hilfe wurde das Programm Sandcastle verwendet und
bei diesem Tool war es leider nicht möglich, gezielt nur eine Datei zu dokumentieren.
Denn dort musste immer das gesamte Projekt als Eingabe angegeben werden. Also habe
ich kurzerhand eine DLL erstellt, die nur die Komponente enthält. Somit konnte
dann auch die Hilfe ohne „überflüssigen” Ballast erstellt
werden.
Viel Spaß bei der Verarbeitung von hexadezimalen Daten…
|