| |
|
|
- Página 1 - |
|
Walter | ¡Hola! Posesiones folgendes Problema: Yo möchte verhindern, dass en una Eingabefeld Texto hineinkopiert voluntad kann. Lösche dazu en mi Programa el Zwischenablage mittels clearclip, sobald el Eingabefeld el Focus erhält. Das funktioniert. Doch scheint lo trotzdem posible a ser, encima una más Programa una Texto (mittels DDE? ) en dieses Feld einzufügen. Ist el posible? ¿Cómo se puede Yo el verhindern? |
|
|
| |
|
|
|
« Dieser Contribución wurde como Solución gekennzeichnet. » |
|
Matthias Arlt | Andere Möglichkeit: Editar subclassen y WM_PASTE abfangen
proc EditSubclass
parámetros edit&, Msg&, wParam&, lParam&
set("FastMode",1)
if Msg& = 770''WM_PASTE
volver
endif
volver external("USER32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("FastMode",0)
ENDPROC
declarar owp&,edit&
cls
edit& = create("MultiEdit",%hwnd,"",100,30,200,100)
owp&=external("USER32","SetWindowLongA",edit&,-4, ProcAddr(EditSubclass,4))
mientras que 1
waitinput
wend
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
|
p.specht
| Verstehe Yo Usted correcto: Texto sino que debe weiterhin eingegeben voluntad puede. Oder?
Mir fällt momentan sólo el alte de BASIC abgeleitete Befehl Entrada una
cls:declarar x$:imprimir " Texto: "; Entrada x$ imprimir x$:waitinput:end
una. In XProfan-11.2a puede ser como nix de el Zwischenablage reintun. Klappt simplemente no! |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 14.03.2020 ▲ |
|
|
|
|
Walter | Sí, una Texto se eingegeben voluntad puede. Lo va esta en una multiedit, en el auch una längerer Texto eingetragen voluntad kann. Aunque se nichts hineinkopiert voluntad puede. El Zwischenablage Por consiguiente, blockiert. Jetzt tener Yo gesehen, lo son z.B. una "Clipboardmaster" [...] el Textos offenbar selbständig (sin la Zwischenablage) en Felder uno otro Programms transportiert. Könnte encima DDE laufen (se hier en efecto como Möglichkeit para Fernsteuern beschrieben) - doch mein Programa se se eben gegen "Fernsteuern" / Texto hineinkopieren wehren puede. Also Anti-DDE, sozusagen... |
|
|
| |
|
|
|
Matthias Arlt | Andere Möglichkeit: Editar subclassen y WM_PASTE abfangen
proc EditSubclass
parámetros edit&, Msg&, wParam&, lParam&
set("FastMode",1)
if Msg& = 770''WM_PASTE
volver
endif
volver external("USER32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("FastMode",0)
ENDPROC
declarar owp&,edit&
cls
edit& = create("MultiEdit",%hwnd,"",100,30,200,100)
owp&=external("USER32","SetWindowLongA",edit&,-4, ProcAddr(EditSubclass,4))
mientras que 1
waitinput
wend
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | Von Subclassing tener Yo bisher desafortunadamente ni idea. Nehme lo aber igual como Anlass, mich así a beschäftigen. Probiere Yo heute todavía de! Gracias! |
|
|
| |
|
|
|
Walter | Funktioniert bestens! Herzlichen Dank!
Jetzt muss Yo sólo todavía verstehen... |
|
|
| |
|
|
|
Matthias Arlt | Es eigentlich bastante simplemente. Beim Einfügen erhält Edit-Control el Message WM_PASTE y el Ventana-Procedimiento des Editar-Controls reagiert entonces entsprechend darauf. Dies se en el konkreten Fall verhindert voluntad. Also tauschen wir el originale Ventana-Procedimiento des Editar-Controls bastante simplemente de, dejar hay el Message WM_PASTE quasi unbehandelt. Für todos otro Editar-Messages greift entonces otra vez el originale Ventana-Procedimiento...
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | |
|
| |
|
|
|
E.T. |
proc EditSubclass
parámetros edit&, Msg&, wParam&, lParam&
set("FastMode",1)
if Msg& = 770''WM_PASTE
volver
endif
volver external("USER32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("FastMode",0)
ENDPROC
In dieser Procedimiento se pero la "FastMode" nie otra vez abgeschaltet, como sí selbige siempre antes set("FastMode",0) con volver verlassen se |
|
|
| XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.03.2020 ▲ |
|
|
|
|
Matthias Arlt | Stimmt...el set("FastMode",0) es a dieser Punto wirkungslos y entbehrlich. Wichtig es sí sólo, daß set("FastMode",1) erforderlich es, qué wiederum [antes el SubClassing] auch a otro Punto en el Programa gesetzt voluntad kann...y ggf. auch debería
Saludo Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | Desde que en el Windows Api-Aufrufen nada durchblicke, Yo inzwischen de el Ayuda una weitere Versión mittels subclass, subclassproc y Conjunto("WinProc", 0) zustande gebracht, el ebenfalls funktioniert:
Lt. Ayuda se el SubClassProc defaultmäßig en el FastMode aufgerufen, weswegen hier set("Fastmode",1) entfallen podría.
Gracias nochmals a Matthias para el Referencia, dass el problema mittels Subclassing a lösen es! |
|
|
| |
|
|