• Hallo Leute,


    habe vor Jahren von Franks Seite eine DLL (NEdit) heruntergeladen. mit dieser Dll war es ganz leicht möglich EDIT's nur die nummerische Eingabe zu erlauben. Alle Eingabe bis auf Komma, Punkt und Zahl wurden ignoriert.


    Diese DLL ist mir leider verloren gegangen und auf Franks Seite ist sie auch nicht mehr. Hat sie jemand von Euch noch? Kann sie mir Jemand besorgen?

    Viele Grüsse
    Mike


    Windows 7 ultimate
    Xprofan X2

  • Jupp. :)

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Vielen Dank an Euch,


    das Mit dem Subclassen hatte ich schon gelesen, aber das übersteigt noch meine Programmierkünste.

    Viele Grüsse
    Mike


    Windows 7 ultimate
    Xprofan X2

  • Das ist eigentlich nicht schwer. Sogar ziemlich einfach. :)

    XProfan-Semiprofi (XProfan X4a+XPIA+LemonEd)/PureBasic 6.00/RAD Studio 11 (Alexandria)/Perl 5.34.00/Python 3.10.0
    Ryzen 5800X/Gigabyte B550m DS3H/32GB RAM@3600MHz/Radeon HD7770 OC/Asus Xonar SE/46TB HDD+512GB Samsung 980 Pro+2TB Crucial SSD/28" Samsung 4k
    Synology DS920+ mit 42TB
    XBox Classic/360S/Series X/PS3 Super Slim 500GB/PS4 Pro (XBL-ID: jacdelad, PSN: jacdelad84)
    OnePlus 9 Pro (12GB/256GB)
    https://jacdelad.bplaced.net

  • Hallo cyberangle


    In Deinem speziellen Falle geht es auch ohne DLL und Subclassing.



    jac Subclassing ist einfach, aber man muß auch wissen, welche Botschaften in jeweiligen Control zu behandeln sind und welche Parameter die haben. Da muß sich der Einsteiger erst mal durchwuseln. Und so lange ist es dann eben doch nicht ganz einfach.


    Gruß Volkmar

  • Für Profan 11.2a gibts noch ein Problem: Das Auslesen des Wertes aus dem Feld will nicht so recht klappen, der Cursor ist dort gefangen. Oder mach ich was falsch? Hier meine Versionsrückübersetzung des Programms von Volkmar:

    HP255G7:Win10pro2.004,4*AMD Ryzen3200U@2.60GHz,6+2GB-RadeonVega/237GBSSD:intlDVDRW,3xUSB3 ext4TB-HDX,XProfanX3+Xasm/Xpse

  • Wäre schön, wenn jemand noch eine SubClass Version posten könnte,
    weil irgendwie funzt das bei mir nie so richtig, hab da bestimmt was
    verkehrt verstanden :D

    Bei einem kleinen a sollte jetzt die WindowsProc nicht mehr aufgerufen
    werden, somit das a nie geschrieben werden, dem ist aber nicht so.


    Deshalb wäre ein Beispiel schön.

  • Ohne SubClass und NEdit.dll verwende ich :

    Nicht optimal, aber es geht halt.


    Gruß Thomas

  • Hallo


    @P.Specht: Eigentlich hast Du fast alles richtig gemacht, aber:
    Case %HEX : Out$ = Out$ + Sel$
    Ist aber eigentlich egal, muß trotzdem gehen und geht bei mir auch unter XPofan 11 und wenn ich die ganze Select-Geschichte durch IFs ersetze auch unter XProfan 8. Die Botschaft ~Em_SetSel soll ja bei diesen Parametern den Cursor immer hinter die Einfügestelle setzen (Anfang und Ende der Markierung identisch markiert nichts und setzt den Cursor auf diese Position, also Länge der korrigierten Einfügung). Aber möglicherweise wäre SendMessage(Editor&, ~EM_SETSEL, -1, Len(Out$)) besser. So habe ich es gerade in der Beschreibung von SetSel gefunden. -1 in wParam markiert nichts und setzt Cursor auf Position in lParam. Meine schnelle Idee geht also möglicherweise nicht überall gleichermaßen.


    ts-soft: 65 ist der Großbuchstabe A. Weiterhin solltest Du statt wm_keydown wm_Char verwenden, dann klappt das.


    Gruß Volkmar

  • Volkmar: Sowohl die Originalversion als auch SendMessage(Editor&, ~EM_SETSEL, -1, Len(Out$)) korrigieren zwar an der richtigen Stelle, hüpfen aber sofort danach ans jeweilige Ende. Ist das Absicht?

    HP255G7:Win10pro2.004,4*AMD Ryzen3200U@2.60GHz,6+2GB-RadeonVega/237GBSSD:intlDVDRW,3xUSB3 ext4TB-HDX,XProfanX3+Xasm/Xpse

  • Jetzt wird mir das Problem klar. Ich lese immer den kompletten Editorinhalt und schreibe den korrigiert zurück. Damit steht der Cursor wirklich immer am Ende. Mittenrein was korrigieren wird dann wirklich zur Qual. Ich habe eben mal auf die Schnelle versucht, was zu ändern, aber dann kommt bisher Unsinn raus.


    Gruß Volkmar

  • Ich habe es nun doch geschafft. Hier mal in der 11er Version. Für X2 wäre die neu eingeführte Variable SelPos entsprechend einzubauen. Es wird nun immer nur der Teil bis zur aktuellen Schreibposition bearbeitet.


    Ich hoffe, daß es nun zufriedenstellend läuft.


    Gruß Volkmar

  • Für ts-soft nun mal die Version mit Subclass soweit aufgebaut. Hat nun die gleichen Möglichkeiten.



    Gruß Volkmar

  • Vielen vielen Dank Euch allen, jetzt habe ich Beispiele, in die ich mich erst einmal hineinfinden muß.

    Viele Grüsse
    Mike


    Windows 7 ultimate
    Xprofan X2

  • Hier noch ein SubClass-Beispiel von iF der Vollständikeit wegen. Wird für nummerische Felder in einer dbf gebraucht, da das Feldformat zum sicheren Speichern eingehalten werden sollte.

    Gruß Thomas

  • @THFR


    Die ganzen Stringfunktionen in der SubProc machen das ganze nicht gerade
    sicher. Da würde ich eher das Beispiel von Volkmar erweitern. Zeichenlänge
    kann man auch von vornherein per SendMessage auf 5 Zeichen begrenzen
    und dann den Punkt automatisch setzen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!