Ich würde empfehlen, das
IP Address Control überhaupt nicht zu verwenden.
Auf den ersten Blick mag es logisch sein, eine streng formatierte Eingabe zu präsentieren.
Aber wenn man selbst das Control benützt, dann nerven die Einschränkungen doch gewaltig.
* Copy & Paste funktioniert nicht.
Man steckt immer in der ersten Zahl vor dem ersten Punkt fest und muss dann die
IP-Adresse ABTIPPEN.
Also ich hasse es wenn ich eine
IP abtippen muss.
* keine Möglichkeit einen Rechnernamen einzugeben
ich möchte bitteschön einen Rechnernamen eingeben können; das Programm soll die Namensauflösung durchführen
und die Eingabe durch die
IP Adresse ersetzen. Soviel Komfort muss sein.
* Control reagiert nicht auf den Punkt
ich bin immer etwas irritiert, wenn ich die erste Zahl eingegeben habe und dann den Punkt eingebe:
nichts passiert
man muss Pfeil nach rechts drücken um zur 2. Zahl zu kommen.
Das Control sollte sich dem Benutzer anpassen nicht umgekehrt.
Alternative Lösung:
* ein normales TEdit verwenden
* das Editfeld zeigt folgenden Inhalt [ . . . ] solange es nicht den Fokus hat
und noch keine Eingabe getätigt wurde. Damit wird dem Benutzer gezeigt: "hier eine
IP eingeben"
* erhält das Edit den Fokus, wird der Inhalt [ . . . ] gelöscht (Event OnEnter)
* wird das Feld verlassen (Event OnExit) wird geprüft, ob es sich um eine vollständige und korrekte
IP handelt.
Sollte das Feld 3 Punkte und nur Ziffern enthalten, aber keine gültige
IP sein -
Exception werfen
Enthält das Feld genau 8 Hexzeichen? Umwandeln in dezimale
IP.
Ansonsten wird versucht eine Namensauflösung durchzuführen.
Falls Namensauflösung erfolgreich:
IP in Editfeld kopieren
Falls Namensauflösung nicht erfolgreich:
Exception werfen (Feld nicht verlassen)
Diese Lösung verwendet keine Low-Lewel-Funktionen und ist auf jeder Windowsversion und sogar anderen Betriebssystemen lauffähig.
@Matze: Hey, das wollte ich auch schreiben, hatte es nur noch nicht abgeschickt