Español
Foro

Subclassing uno Editar-Feldes

 
- Página 1 -



Stephan
Sonneborn
¡Hola,

wieso se el Message EM_GETMODIFY no ausgewertet, el Message WM_KEYUP aber ya?
'************************************************************************************************
'* SubClassing                                                                                  *
'************************************************************************************************
 $H MESSAGES.PH
DECLARE Edit&
DECLARE Ende%
'+----------------------------------------------------------------------------------------------+

SUBCLASSPROC

    IF SUBCLASSMESSAGE(Edit&, ~EM_GETMODIFY)

        'IF SUBCLASSMESSAGE(Edit&, ~WM_KEYUP)

        IF GETTEXT$(Edit&) = "Ende"

            LOCATE 10,1
            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            Ende% = 1

        ENDIF

        SET("WinProc", 0)

    ENDIF

ENDPROC

'+----------------------------------------------------------------------------------------------+
CLS
Edit& = CREATE("Edit",%HWND, "", 10,10,100,20)
SUBCLASS Edit&,1

WHILENOT Ende%

    WAITINPUT

WEND

SUBCLASS Edit&,0
FIN
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
04.10.2020  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Matthias
Arlt
Wenn ya SubClassing, entonces etwa así:
SUBCLASSPROC

    IF SUBCLASSMESSAGE(Edit&, ~WM_KEYUP) O SUBCLASSMESSAGE(Edit&, ~WM_PASTE)

        SET("WinProc", 1)
        LOCATE 10,1
        PRINT "Subclassing erfolgreich"

    ENDIF

    IF SendMessage(Edit&,~EM_GETMODIFY,0,0)

        IF GETTEXT$(Edit&) = "Ende"

            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            waitinput
            Ende% = 1

        ENDIF

    ENDIF

ENDPROC


Mit solcher "Eingabeaufforderung" en el SubClassproc es el pero no muy elegante Solución... Und eigentlich braucht lo dafür kein SubClassing, porque así es auch:
CLS
Edit& = CREATE("Edit",%HWND, "", 10,10,100,20)

WHILENOT Ende%

    WAITINPUT

    IF SendMessage(Edit&,~EM_GETMODIFY,0,0)

        IF GETTEXT$(Edit&) = "Ende"

            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            waitinput
            Ende% = 1

        ENDIF

    ENDIF

WEND

FIN

Lo sei porque, Usted necesidad el SubClassing todavía para weitere, hier todavía no enthaltene Características...

Das EM_GETMODIFY es en beiden Fällen entbehrlich y dient sólo a Demo, wo y cómo lo anwendet.

Saludo Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
07.10.2020  
 




Matthias
Arlt

lt. Win32hlp: An application sends a EM_GETMODIFY mensaje to determine whether the content of a edit control has been modified.


EM_GETMODIFY müßte also primero a Edit gesendet voluntad. Como WM_KEYUP en efecto...por Liberación uno Taste...

Saludo Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
05.10.2020  
 



EM_GETMODIFY  [...]  se uno (por SendMessage) a Edit senden y al Rückgabewert erkennen, si Edit "modifiziert" wurde.

Subclassmessage wäre hierbei hilfreich si Windows el Nachricht ans Editar envía, qué pero no el Fall es.

Lo son aber auch EN_CHANGE (  [...]  ) - vlt. más qué Usted suchst.
 
05.10.2020  
 




Stephan
Sonneborn
IF (05.10.2020)
Lo son aber auch EN_CHANGE (  [...]  ) - vlt. más qué Usted suchst.


Hm. Nein. Geht auch no...
WM_KEYUP wäre sí OK, pero si uno algo por Zwischenablage y Kontextmenü einfügt, bekomme Yo el no con...
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
05.10.2020  
 




Matthias
Arlt

...si uno algo por Zwischenablage y Kontextmenü einfügt, bekomme Yo el no con...


Doch, simplemente WM_PASTE reagieren...genau como WM_KEYUP.
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
05.10.2020  
 




Stephan
Sonneborn
Hm... Irgendwie kann Yo entonces gar nichts mehr einfügen por CTRL+V oder RMT+Einfügen...
'************************************************************************************************
'* SubClassing                                                                                  *
'************************************************************************************************
 $H MESSAGES.PH
DECLARE Edit&
DECLARE Ende%
'+----------------------------------------------------------------------------------------------+

SUBCLASSPROC

    'IF SUBCLASSMESSAGE(Edit&, ~EM_GETMODIFY)

    IF SUBCLASSMESSAGE(Edit&, ~WM_KEYUP) O SUBCLASSMESSAGE(Edit&, ~WM_PASTE)

        IF GETTEXT$(Edit&) = "Ende"

            LOCATE 10,1
            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            Ende% = 1

        ENDIF

        SET("WinProc", 0)

    ENDIF

ENDPROC

'+----------------------------------------------------------------------------------------------+
CLS
Edit& = CREATE("Edit",%HWND, "", 10,10,100,20)
SUBCLASS Edit&,1

WHILENOT Ende%

    WAITINPUT

WEND

SUBCLASS Edit&,0
FIN
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
06.10.2020  
 




Matthias
Arlt
Der einzufügende String muß natürlich auch beim Editar ankommen. Also el Message no sólo abfangen, pero después de Eingang auch a el originale WindowProc vom Editar weiterreichen por 'SET("WinProc", 1)'. Oder aber incluso behandeln (bspw. 'settext'...)

Saludo Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
06.10.2020  
 




Stephan
Sonneborn
Matthias Arlt (06.10.2020)
Der einzufügende String muß natürlich auch beim Editar ankommen. Also el Message no sólo abfangen, pero después de Eingang auch a el originale WindowProc vom Editar weiterreichen por 'SET("WinProc", 1)'. Oder aber incluso behandeln (bspw. 'settext'...)

Saludo Matthias


Vielen Dank para Su Ayuda, Matthias!
Hab ahora WinProc otra vez eingeschaltet. Danach Yo quería entonces Edit-Feld auswerten... sin Erfolg.
'************************************************************************************************
'* SubClassing                                                                                  *
'************************************************************************************************
 $H MESSAGES.PH
DECLARE Edit&
DECLARE Ende%
'+----------------------------------------------------------------------------------------------+

SUBCLASSPROC

    'IF SUBCLASSMESSAGE(Edit&, ~EM_GETMODIFY)

    IF SUBCLASSMESSAGE(Edit&, ~WM_KEYUP) O SUBCLASSMESSAGE(Edit&, ~WM_PASTE)

        SET("WinProc", 1)
        LOCATE 10,1
        PRINT "Subclassing erfolgreich"

        IF GETTEXT$(Edit&) = "Ende"

            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            Ende% = 1

        ENDIF

    ENDIF

ENDPROC

'+----------------------------------------------------------------------------------------------+
CLS
Edit& = CREATE("Edit",%HWND, "", 10,10,100,20)
SUBCLASS Edit&,1

WHILENOT Ende%

    WAITINPUT

WEND

SUBCLASS Edit&,0
FIN
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
07.10.2020  
 




Matthias
Arlt
Wenn ya SubClassing, entonces etwa así:
SUBCLASSPROC

    IF SUBCLASSMESSAGE(Edit&, ~WM_KEYUP) O SUBCLASSMESSAGE(Edit&, ~WM_PASTE)

        SET("WinProc", 1)
        LOCATE 10,1
        PRINT "Subclassing erfolgreich"

    ENDIF

    IF SendMessage(Edit&,~EM_GETMODIFY,0,0)

        IF GETTEXT$(Edit&) = "Ende"

            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            waitinput
            Ende% = 1

        ENDIF

    ENDIF

ENDPROC


Mit solcher "Eingabeaufforderung" en el SubClassproc es el pero no muy elegante Solución... Und eigentlich braucht lo dafür kein SubClassing, porque así es auch:
CLS
Edit& = CREATE("Edit",%HWND, "", 10,10,100,20)

WHILENOT Ende%

    WAITINPUT

    IF SendMessage(Edit&,~EM_GETMODIFY,0,0)

        IF GETTEXT$(Edit&) = "Ende"

            PRINT "Einfach clic para "; GETTEXT$(Edit&)
            waitinput
            Ende% = 1

        ENDIF

    ENDIF

WEND

FIN

Lo sei porque, Usted necesidad el SubClassing todavía para weitere, hier todavía no enthaltene Características...

Das EM_GETMODIFY es en beiden Fällen entbehrlich y dient sólo a Demo, wo y cómo lo anwendet.

Saludo Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
07.10.2020  
 




Stephan
Sonneborn
¡Hola Matthias,

vielen Dank para Su Ejemplo!

Das macht lo klarer! Yo quería mich simplemente veces a el "neuen" Características wagen. Als Ziel se lo sí una Vokabeltrainer voluntad.

Und Yo quería übers Subclassing una Zeitmesser laufen dejar. Klappt auch muy bien!

Und entonces Yo quería während el Eingabe uno Antwort con un Wechsel uno Icons para correcto oder falso una Rückmeldung geben.

Das Ejemplo oben debería el problema sólo vereinfacht darstellen. Yo denke, ahora bekomme Yo hin!
 
XProfan X4
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
08.10.2020  
 




Matthias
Arlt
¡Hola Stephan,
entonces gutes Gelingen! Freut mich, si yo una wenig dazu beitragen podría...
Saludo Matthias
 
Alle Sprachen
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
08.10.2020  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

6.135 Views

Untitledvor 0 min.
Gast.0815 vor 13 Tagen
Member 862464120.05.2024
Normann Strübli03.02.2023
Walter30.12.2022
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie