Announcement

Collapse
No announcement yet.

Editmaske oder Funktion für Eingabe der IP-Adresse

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Editmaske oder Funktion für Eingabe der IP-Adresse

    Ich habe auf meinem Formular ein Editfeld in das ich eine <br>
    IP-Adresse eingeben möchte. Allerdings sollen allen Eingabefehlern <br>
    seitens des Benutzers vorgebeugt werden, indem ich nur bestimmte <br>
    Eingabe zu lasse (z.B. nur Zahlen usw.), kurz ich möchte einfach alle <br>
    möglichen Eingabefehler auffangen. Hat jemand vielleicht schon mal <br>
    eine entsprechende Funktion geschrieben? Ich programmier mich hier <br>
    tot und ich denke das geht bestimmt einfacher.

  • #2
    Hi

    Als erstes, nutzte NIEMALS die mit Borland mitgelieferten TEditMask's. Wir haben ständig arge Probleme, bishin das auf NT nichts eingebar ist.

    In Deinem Fall fängst Du vom TEdit das OnKeyPress() Event ab, und überprüfst ob das Key in ['0..'9','.',Char(vk_Back),Char(vk_Delete)] ist. Falls nicht wird Key := #0 gesetzt und gebeep't. Damit hast Du schon den größten Teil. Es bleibt nur noch zu überprüfen ob die xxx.xxx.xxx.xx Reihenfolge stimmt, am besten im TEdit.OnExit Event.

    Gruß Hage

    Comment


    • #3
      Schönen Dank erstmal für den Tip, aber ich finde, der größte und mir am meisten Probleme bereitene Teil ist doch das Überprüfen der eingegebenen IP-Adresse

      Comment


      • #4
        Ich habe jetzt eine Komponente im Netz gefunden, die genau das macht was ich möchte.
        Für weitere Interessenten:
        http://www.multimania.com/jlucm

        Comment


        • #5
          Hast Du die richtige Adresse angegeben? Ich bekomme von multimania eine Meldung Seite nicht gefunde

          Comment


          • #6
            MS liefert doch die IP mask bei COMCTL32 mit! einfach implementieren.

            initcommoncontrols;
            createwindowex();

            ....

            Ass

            Comment


            • #7
              Hallo M.Denker, probier mal das:

              function TForm1.Pruefe_auf_IP(wert1:String):Boolean;<br>
              var;<br>
              i, vZiffer, vPunkt, GesZiffer: Integer;;<br>
              begin;<br>
              {Wir lesen jetzt Buchstabe für Buchstabe und verlassen, wenn mehr als 3 Zif-;<br>
              fern oder mehr als 3 Punkte.};<br>
              Result := false;;<br>
              vZiffer := 0; vPunkt := 0; GesZiffer := 0;;<br>
              for i := 1 to length(wert1) do begin;<br>
              if wert1[i] = '.' then begin;<br>
              {Sollte es ein Punkt sein, prüfen wir ob schon 3 da sind und wir müssen;<br>
              unseren Ziffernzähler auf 0 setzen.};<br>
              if vPunkt = 3 then exit;;<br>
              vZiffer := 0; // Jetzt können wieder bis zu 3 Ziffern kommen.;<br>
              Inc(vPunkt);;<br>
              end else begin;<br>
              {Haben wir schon 3 Ziffern, ist auch Feierabend.};<br>
              case vPunkt of;<br>
              0: if GesZiffer = 0 then GesZiffer := 1; //ist min. 1 Ziffer vor Punkt;<br>
              1: if GesZiffer = 1 then GesZiffer := 2; //ist min. 1 Ziffer vor Punkt;<br>
              2: if GesZiffer = 2 then GesZiffer := 3; //ist min. 1 Ziffer vor Punkt;<br>
              3: if GesZiffer = 3 then GesZiffer := 4; //ist min. 1 Ziffer vor Punkt;<br>
              end;;<br>
              if vZiffer = 3 then exit;;<br>
              inc(vZiffer);<br>
              end;<br>
              end;<br>
              {Alles war gut.}<br>
              if (vPunkt = 3) and (GesZiffer = 4) then Result := true;<br>
              end;<br>

              mfg Klaus-Peter Fitzne

              Comment

              Working...
              X