| |
|
|
 rquindt | ¡Hola
Gibt lo una Möglichkeit, en Eingabe una Vorgabe-Maske utilizarse?
Yo möchte z.B. en uno Datumseingabe "12.05.2016" vorgeben. En Eingabe debería sólo Pagar erlaubt ser y a el Stellen, a denen el "." es, se el Kursor esta automáticamente überspringen.
Un zweite Versión währe "2X". dh. a el ersten Punto darf sólo "0-9" eingegeben voluntad, a el zweiten sólo "A-Z" |
|
|
| |
|
|
|
 H.Brill | A Datumseingabe sería Yo el DateEdit uso. Como kannst du una Datum vorgeben. Siehe Kapitel 20.5 en el Ayuda.
A Versión 2 : Como podría al Editar campo subclassen y con el regulären Ausdrücken trabajo. Suchmuster el ersten Punto : "[0-9]" Suchmuster el zweiten Punto : "[A-Z]" |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 01.05.2016 ▲ |
|
|
|
|
 rquindt | ¡Hola H.Brill
Gracias para el Tip con el DateEdit. Yo habe lo veces getestet, funktioniert prima.
Gibt lo el Möglichkeit, auch una leeres Datumsfeld a transferencia sin el el aktuelle Datum erscheint? (00.00.0000)
Desde que mich así langsam en XProfan einarbeite (habe vorher en DOS Powerbasic programmiert) me está el con el SubClassen todavía no bastante klar. Hättest Usted como una Ejemplo para mich? |
|
|
| |
|
|
|
 H.Brill | Für el SubClassen veces una Anfang :
$H Messages.ph
Declarar Handle Editar1
Declarar Int ende, String edittext
Ventana 400, 200
Editar1 = Crear("Edit", %HWnd, "", 10, 10, 80, 20)
ende = 0
Mensajes del usuario $10
SubClass Editar1, 1
Sinestar encargado ende
WaitInput
Case %UMessage = $10 : ende = 1
EndWhile
SubClass Editar1, 0
SubClassProc
If SubClassMessage(Editar1, ~wm_KeyUp)
edittext = GetText $(Editar1)
Messagebox(edittext, "", 0)
SetFocus(Editar1)
Conjunto("WinProc", 0)
EndIf
ENDPROC
End
|
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 01.05.2016 ▲ |
|
|
|
|
 rquindt | ¡Hola H.Brill
Yo habe Su código veces una bisschen umgebaut. Damit kann Yo ahora por SubClassing Edit-Feld bearbeiten. Den Code Yo como Expediente abgespeichert.
Yo habe intenta el código hier einzufügen, aber esta va el Formatierung perdido. Gibt lo una Anleitung,cómo hacerlo umgeht?
¿Puede Usted Usted media Code veces ansehen? Kann uno todavía qué optimieren?
$H Messages.ph $H Windows.ph Def GetSysColor(1) !"USER32","GetSysColor"
cls GetSysColor(15) UseFont "Arial",15,0,0,0,0 SETDIALOGFONT 1 Declarar Handle Editar1, Btn1 Declarar Int ende, String edittext, ErlaubteZeichen Ventana 400, 200 Editar1 = Crear("Editar", %HWnd, "", 10, 50, 80, 20) SetStyle Editar1, GetStyle(Editar1) | ~ES_UPPERCASE '--- Buchstaben sólo como Großbuchstaben ausgeben @SendMessage(Editar1,$00C5,2,0) '--- Parámetro 3 erlaubt Anzahl max. Stellen
btn1 = Crear("Button", %HWnd, "Fertig", 10, 80, 60, 25)
ende = 0
Mensajes del usuario $10 SetFocus(Editar1) SubClass Editar1, 1
Sinestar encargado ende
WaitInput If Clicked(btn1) edittext = GetText$(Editar1) Messagebox(edittext, "", 0) SetFocus(Editar1) EndIf Case %UMessage = $10 : ende = 1 '--- Ventana schließen angeclickt
EndWhile
SubClass Editar1, 0
End
SubclassProc
Declarar p&, ch$, s$ if &sWnd = Editar1 if %sMessage=258//wm_char p& = Hiword(sendMessage(Editar1,$B0,0,0))//em_getSel '--- aktuelle Cursor-Position (sólo Spalte) imEditfeld s$ = getText$(Editar1) '--- bisheriger Texto en Editar ch$ = upper$(chr$(&swParam)) '--- letztes eingegebenes Signo, Asci-Code, en Großbuchstaben gewandelt
If p& = 1 ErlaubteZeichen = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Más ErlaubteZeichen = "0123456789" EndIf ifnot instr(ch$,ErlaubteZeichen) '--- si el letzte gedrückte Signo no Liste entspricht If &swParam = 8 '--- Backspace / löschen if p& s$ = Del$(s$,p&,1) '--- Feld a Cursorposition löschen dec p&,1 endif EndIf SetText Editar1,s$ '--- String a Editar-Feld transferencia sendMessage(Editar1,$B1,p&,p&)//em_setSel '--- neue Cursor-Position festlegen más s$ = en el$(ch$,s$,p& + 1) '--- Eingabe a Cursor+1 einfügen s$=Mid$(s$,1,2) '--- sólo el ersten 2 Signo tomar, si Eingabe länger ser debería por einfügen setText Editar1,s$ '--- String a Editar-Feld transferencia sendMessage(Editar1,$B1,p&+1,p&+1)//em_setSel '--- neue Cursor-Position festlegen endif set("winproc",0) endif EndIf
ENDPROC
|
 |
|
| |
|
|
|
 Michael W. | Yo war veces así frei...
Beachte el Ausrufezeichen hinter el CODE-Tag.
Das doppelte If kann ersetzt voluntad por
|
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 05.05.2016 ▲ |
|
|
|
|
 rquindt | ¡Hola Michael
Gracias para el Tip Yo habs geändert.
Como bekommt uno porque el código lesbar en el Foro? |
|
|
| |
|
|
|
 Michael W. | Über el Editar campo es "Beitrag|Schrift|Smilies|ein Pfeil". En letzterem wählst Usted simplemente Ver código fuente y fügst como Su Quellcode una. Si el erste Signo direkt hinter el öffnenden Klammer una "!" es, Luego se el Code belassen ya que es. |
|
|
| |
|
|
|
 rquindt | Gracias para el Tip. Yo habs igual veces getestet. Sollte beim nächsten veces no Problemas mehr geben.
Kann mann eigentlich mehrere SubClassing Routinen nutzen ( je Editar campo natürlich sólo una) oder kann vom XProfan sólo una verwaltet voluntad? |
|
|
| |
|
|
|
 Jörg Sellmeyer | "Es kann sólo una geben!"
Aber el es vielseitig. Usted puede en deiner SubClassProc sí verschiedene Contols adressieren y el auch todavía je después de Message unterschiedlich behandeln.
Kleiner Tipp todavía: El Ayuda ha dazu auch ausführliche Erläuterungen de Roland. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 06.05.2016 ▲ |
|
|
|
|
 p.specht
 |  Hab´ mir´s después de XProfan11 portiert - Yo hoffe, el es OK para Euch:
'SubclassProc a Festlegung de Eingabemöglichkeiten
'2016-05 de rquint con wichtigen Beiträgen de H.Brill, Michael W.
'y Jörg Sellmeyer, 2018-12 en XProfan11 zurückgequält de p.specht
$H Messages.ph
$H Windows.ph
Def GetSysColor(1) !"USER32","GetSysColor"
Cls GetSysColor(15)
UseFont Arial,15,0,0,0,0
SETDIALOGFONT 1
Declarar Editar1&, Btn1&
Declarar ende&, edittext$, ErlaubteZeichen$
Ventana 400, 200
Edit1& = Crear("Edit", %HWnd, "", 10, 50, 80, 20)
'--- Buchstaben sólo como Großbuchstaben ausgeben
SetStyle Editar1&, GetStyle(Editar1&) | ~ES_UPPERCASE
'--- Parámetro 3 erlaubt Anzahl max. Stellen:
@SendMessage(Editar1&,$00C5,2,0)
Btn1& = Crear("Button", %HWnd, "Fertig", 10, 80, 60, 25)
ende& = 0
Mensajes del usuario $10
SetFocus(Editar1&)
SubClass Editar1&, 1
Sinestar encargado ende&
WaitInput
If Clicked(Btn1&)
edittext$ = GetText $(Editar1&)
Messagebox(edittext$, "", 0)
SetFocus(Editar1&)
EndIf
Case %UMessage = $10 : ende& = 1
'--- Ventana schließen angeclickt
EndWhile
Main:
SubClass Editar1&, 0
End
SubclassProc
Declarar p&, ch$, s$
' Vorschlag de J. Sellmeyer para Verwendung en varios Editcontrol-Feldern:
'if &sWnd = Editar1&
' if %sMessage=258//wm_char
' SetMenuItem 4000
' elseif %sMessage=xxx//wm_...
' SetMenuItem 4001
' Endif
'Elseif &sWnd = Editar2&
' if %sMessage=258//wm_char
' SetMenuItem 4001
' Elseif %sMessage=xxx//wm_...
' SetMenuItem 4003
' Endif
'EndIf
if &sWnd = Editar1&
if %sMessage=258//wm_char
'--- aktuelle Cursor-Position (sólo Spalte) en el Editar campo:
p& = Hiword(sendMessage(Editar1&,$B0,0,0))//em_getSel
s$ = getText$(Editar1&)'--- bisheriger Texto en Editar
'--- letztes eingegebenes Signo, Asci-Code, en Großbuchstaben gewandelt
ch$ = upper$(chr$(&swParam))
If p& = 1
ErlaubteZeichen$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Más
ErlaubteZeichen$ = "0123456789"
EndIf
'--- Si el letzte gedrückte Signo no Liste entspricht:
ifnot instr(ch$,ErlaubteZeichen$)
If &swParam = 8'--- Backspace / löschen
if p&
s$ = Del$(s$,p&,1)'--- Feld a Cursorposition löschen
dec p&,1
endif
EndIf
SetText Editar1&,s$'--- String a Editar-Feld transferencia
sendMessage(Editar1&,$B1,p&,p&)//em_setSel '--- neue Cursor-Position
más
s$ = en el$(ch$,s$,p& + 1)'--- Eingabe a Cursor+1 einfügen
'--- sólo el ersten 2 Signo tomar, si Eingabe por einfügen länger ser debería:
s$=Mid$(s$,1,2)
setText Editar1&,s$'--- String a Editar-Feld transferencia
sendMessage(Editar1&,$B1,p&+1,p&+1)//em_setSel '--- neue Cursor-Position
endif
set("winproc",0)
endif
EndIf
ENDPROC
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 09.12.2018 ▲ |
|
|
|