Neue Antwort erstellen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

Die letzte Antwort auf dieses Thema liegt mehr als 365 Tage zurück. Das Thema ist womöglich bereits veraltet. Bitte erstellen Sie ggf. ein neues Thema.

Informationen
Frage Bitte beantworten Sie die untenstehende Frage bzw. lösen Sie die untenstehende Aufgabe.
Nachricht
Internet-Adressen werden automatisch erkannt und umgewandelt.
Smiley-Code wird in Ihrer Nachricht automatisch als Smiley-Grafik dargestellt.
Sie können BBCodes zur Formatierung Ihrer Nachricht nutzen.

Vorherige Beiträge 7

  • @Volkmar
    Danke für den Code.
    Bin aber mit dem Code von Roland auch zu der Lösung gekommen.
    (Es führen viele Wege über XProfan ;-) )
    Da ich ja noch nach "alter Väter Sitte" schreibe (benutze das Handle nicht),
    hab ich erst umschreiben müssen und nun klappt es prima.
    Wieder einmal hat sich die XProfangemeinde als sehr hilfreich erwiesen. :top:
  • Jetzt wieder am Rechner, kann ich da auch vernünftig schreiben, was ich meinte

    Quellcode

    1. CLS
    2. Def %MaxLen 20
    3. Declare Handle Edit
    4. Declare Handle Anzeige
    5. Declare Int Rest
    6. Edit = Create("MultiEdit", %HWnd, "", 4, 4, 320, -96)
    7. Anzeige = Create("Text", %HWnd, "", 4, 108, 164, 20)
    8. SendMessage(Edit,$00C5,%MaxLen,0)
    9. While 1
    10. Rest = %MaxLen - Len(GetText$(Edit))
    11. Case Rest = 0 : Beep
    12. SetText Anzeige, Str$(Rest) + " Zeichen verbleiben"
    13. WaitInput
    14. Case %Key = 2 : Break
    15. EndWhile
    Alles anzeigen
    Unter dem Multiedit mal eine Textanzeige, in der die verbleibenden Restzeichen angezeigt werden.

    Gruß Volkmar
  • Hallo Horst,

    da wirst Du ohne Subclassing nicht auskommen (siehe Hilfe). Mit dem Subclassing erreichst Du, dass Du auf Messages reagieren kannst, während Du im Waitinput bist. Ich habe Dir mal ein Beispiel geschrieben. Dort wird für das Multiedit das Subclassing eingeschaltet. Immer dann, wenn im Multiedit eine Taste losgelassen wird (WM_KEYUP), wird der Befehlscode 3000 ausgelöst, der das WaitInput unterbricht, so dass die Hauptschleife darauf reagieren kann:

    Quellcode

    1. windowstyle %windowstyle | $200 // Dialogfensterstil
    2. cls
    3. var handle hMEdit = create("MultiEdit", %hWnd, "", 10, 10, 200, 200)
    4. var handle hAnzahl = create("Text", %hWnd, "0", 10, 220, 50, 14)
    5. var integer ende = 0
    6. subclass hMEdit, 1 // Subclassing für das Multiedit einschalten
    7. subclassproc
    8. if subclassmessage(hMEdit, $0101, 0, 0) // Wenn im Multiedit eine Taste losgelassen wird (WM_KEYUP)
    9. setmenuitem 3000 // Den Befel 3000 auslösen, der das Waitinput unerbricht
    10. endif
    11. endproc
    12. whilenot ende
    13. waitinput
    14. if %key = 2
    15. ende = 1
    16. elseif menuitem(3000) // Im Multiedit wurde eine Taste losgelassen
    17. setText hAnzahl, str$(len(getText$(hMEdit)))
    18. endif
    19. endwhile
    20. end
    Alles anzeigen

    Gruß
    Roland
  • Volkmar schrieb:

    Vor jeden WaitInput die Länge abfragen und auswerten. Habe nur Handy, deshalb mal so knapp.

    Gruß Volkmar
    Ich schreibe in einem Multedit, da gibt es nur ein Waitinput.
    Die Zeichenzahl soll sich nach jedem neuen Zeichen aktualisieren.
    Die Zählerei muss mit einer Message möglich sein, aber welche ?????
  • Zeichen-Eingabe in Echtzeit zählen.

    horst_

    In vielen Foren sind die Einträge oder Bewertungen (EBay) begrenzt.
    Diese Begrenzung ist kein Problem mit der passenden Message.

    'SendMessage(handle%,$00C5,2,0) 'dritter Parameter gibt die Stellenanzahl an

    Wie aber kann ich schon beim Schreiben unter dem Editor dem User anzeigen, wieviel Zeichen er noch hat :??:
    Danke für eine hilfreiche Antwort :-)