| |
|
|
Nico Madysa | ¡Hola, liebe Comunidad!
Anbei una kleines Programa, con el uno rápidamente con regulären Ausdrücken herumexperimentieren kann. In el Feld para el Ausdrücke puede ser auch gewohnt todos Escape-Sequenzen benutzen; si uno also "\n" schreibt, se dies auch como Zeilenumbruch interpretiert.
Anbei una ligeramente abweichender Code; en el Code Yo el Zeugs lejos, con el I Los cambios el Fenstergröße reagiere, porque el encima Subclassing y NProcs se ejecuta y para una pequeña Schnipsel como esta viel a weit führt.
Descargar KompilierenMarcaSeparación'Sorgt dafür, dass man in muster& auch Escapesequenzen benutzen kann.
proc EscapeBS
parameters text$
text$ = Translate$(text$,"\\z","\z")
text$ = Translate$(text$,"\\a","\a")
text$ = Translate$(text$,"\\b","\b")
text$ = Translate$(text$,"\\t","\t")
text$ = Translate$(text$,"\\f","\f")
text$ = Translate$(text$,"\\r","\r")
text$ = Translate$(text$,"\\n","\n")
text$ = Translate$(text$,"\\q","\q")
whileloop 0,255
text$ = Translate$(text$,"\\x"+upper$(Hex$(&loop \ 16)+Hex$(&loop mod 16)),Chr$(&loop))
EndWhile
return Translate$(text$,"\\\\","\\")
endproc
'Aktualisiert den Titel
proc BuildTitle
if GetText$(muster&) <> ""
WindowTitle "RegEx-Tester: %MatchPos=" + str$(%MatchPos) + "; %MatchLen=" + str$(%MatchLen)
else
WindowTitle "RegEx-Tester: Kein Ausdruck!"
endif
endproc
WindowTitle "RegEx-Tester"
cls
'Error-Level versetzt, weil sonst ständig Warnungen über
'Fehler im RegEx kommen
Set("ErrorLevel",0)
Cls External("User32","GetSysColor",15)
var Input& = Create("MultiEdit",%Hwnd,"Eingabe",0,0,width(%hWnd)\2,height(%hWnd)-20)
var Output& = Create("MultiEdit",%Hwnd,"Ausgabe",width(%hWnd)\2,0,width(%hWnd)\2,height(%hWnd)-20)
var muster& = Create("Edit",%Hwnd,"RegEx-Muster",0,height(%hWnd)-20,width(%hWnd),20)
whilenot Iskey(27)
waitinput
ifnot GetFocus(Output&)
if GetText$(muster&) <> ""
SetText Output&,Match$(EscapeBS(GetText$(muster&)),GetText$(input&))
endif
BuildTitle
endif
wend
ass=s4 href='./../../function-references/XProfan/end/'>end
Anmerkungen y Korrekturen son, como siempre, willkommen. |
| 1.381 kB | | Versión: | 1 | | Kurzbeschreibung: | Programa para Überprüfen de regulären Ausdrücken | | Hochgeladen: | 01.03.2012 | | Ladeanzahl: | | | | Descargar |
|
|
| |
|
|
|
| Yo glaube si en el hWnd-wProc en wm_eraseBkGnd 1 zurückgibst (volver 1) entonces flickerts en Deinem Ejemplo no beim Skalieren. ^ ^ |
|
|
| |
|
|
|
Nico Madysa | Dieser spezifische Schnipsel es muy stark de deinen Ratschlägen inspiriert y yo dar en WM_ERASEBKGND ya 1 zurück.
El Subclassproc sieht así de: KompilierenMarcaSeparación
nproc hWnd.Sub
parameters wnd&,msg&,wParam&,lParam&
var ud& = GetWindowLong(wnd&,gwl_userData)
if msg& = WM_WINDOWPOSCHANGING
ifnot Long(lParam&,24) & 1'Beachtet SWP_NOSIZE
var b& = dim(16)
GetClientRect(%hWnd,b&)
var a& = BeginDeferWindowPos(3)
a& = DeferWindowPos(a&,Long(ud&,0),0,\
0,0,Long(b&,8)\2,Long(b&,12)-20,SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOZORDER)
a& = DeferWindowPos(a&,Long(ud&,4),0,\
Long(b&,8)\2,0,Long(b&,8)\2,Long(b&,12)-20,SWP_NOACTIVATE|SWP_NOZORDER)
a& = DeferWindowPos(a&,Long(ud&,8),0,\
0,Long(b&,12)-20,Long(b&,8),20,SWP_NOACTIVATE|SWP_NOZORDER)
EndDeferWindowPos(a&)
Dispose(b&)
endif
return 0
elseif msg& = WM_GETMINMAXINFO
Long lParam&,24 = 320,240
return 0
elseif msg& = WM_ERASEBKGND
return 1
endif
return CallWindowProc(Long(ud&,nsc_wndproc),wnd&,msg&,wParam&,lParam&)
ENDPROC
Dass hay Verbesserungspotential besteht, erwarte Yo geradezu. |
|
|
| |
|
|