Erreichen Ende des SLE-Feldes
Moderator: Moderatoren
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1930
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Erreichen Ende des SLE-Feldes
Hallo,
ist es möglich beim Erreichen des Endes eines XbpSle() Feldes in das nächste SLE-Feld zu springen ?
ist es möglich beim Erreichen des Endes eines XbpSle() Feldes in das nächste SLE-Feld zu springen ?
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
XbpSLE:autoTab := .T.Rolf Ramacher hat geschrieben:ist es möglich beim Erreichen des Endes eines XbpSle() Feldes in das nächste SLE-Feld zu springen ?
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
so soll es laut Anleitung sein, aber wenn ich Buffer = 4 mache und dann 4 Zeichen eintippe, passiert erst was, wenn ich eine weitere Taste drücke. Wo liegt der Denkfehler?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
... und hast du es jetzt verstandenManfred hat geschrieben: ↑Fr, 05. Apr 2019 13:35 ich sehe gerade, ist hier
viewtopic.php?f=23&t=862
auch ein Thema
:typeOut- Gibt an, ob der Cursor hinter das letzte Zeichen im Editierpuffer bewegt werden sollte.
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
es wurde ja geklärt, das Typeout dafür nicht geeignet ist.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
moin
zeige doch mal wie du es verwendet hast ...
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
soll ich das in SLEOut einmbauen und hier einstellen, oder was meinst Du genau?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
was willst du denn modifizieren um es "unbrauchbar" zu machen
Ich machen in solchen Fällen ein Demo um zu sehen ob es klappt wie es soll.
wenn es damit klappt aber nicht in der App dann liegt der Fehler wo anders.
Code: Alles auswählen
o:autoTab := .T.
Erst "hinter dem letzte Zeichen" geht er dann weiter zum nächsten Control was o:TabStop := .T. hat
wenn du die Länge "bei der Eingabe" brauchst dann wäre ein eigener "Reader" angesagt.
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
Das ist der Code und der klappt nicht so wie gewollt
was verstehst Du unter "hinter dem letzen Zeichen". Wenn ich das 4 zeichen eingetippt habe, dann muß ein weiteres getippt werden (egal Space) dann wird der nächste PArt angesprungen.
Code: Alles auswählen
METHOD fahrer:anmelden(oParent)
LOCAL aDlgSize := {oSysPara:skaliereXbParts(300),oSysPara:skaliereXbParts(240)}
LOCAL lErfolg := .T.
LOCAL lExit := .F.
LOCAL mp1 := 0
LOCAL mp2 := 0
LOCAL nEvent := 0
LOCAL nLinks := oSysPara:skaliereXbParts(5)
LOCAL nOben := oSysPara:skaliereXbParts(170)
LOCAL nPbHoehe := oSysPara:skaliereXbParts(30)
LOCAL nPbLaenge := oSysPara:skaliereXbParts(70)
LOCAL nSleHoehe := oSysPara:skaliereXbParts(20)
LOCAL nSleLaenge := oSysPara:skaliereXbParts(50)
LOCAL oDialog := NIL
LOCAL oPb := NIL
LOCAL oPbOk := NIL
LOCAL oText := NIL
LOCAL oXbp := NIL
MEMVAR oSysPara
DEFAULT oParent TO AppDesktop()
::db_oeffnen()
::felderleeren()
oDialog := DialogFenster():new(oParent,,,aDlgSize,,.F.,.F.,,.T.,.T.,"Anmelden:",.F.,.T.,1)
oText := feldtexte():new(oDialog:drawingarea,,{nlinks,nOben},,,,"L","Personalnummer:")
nLinks += oText:currentSize()[1]
::oNummer := mk_Sle():new(oDialog:drawingArea,,{nLinks,nOben},{nSleLaenge,nSleHoehe},,,"WWWWW")
::oNummer:autoTab := .T.
::oNummer:datalink := { |x| IIF( x==NIL, ::oNummer, ::oNummer := x) }
::oNummer:bufferlength := 4
::oNummer:tabStop := .T.
::oNummer:create(oDialog)
nOben -= oSysPara:skaliereXbParts(50)
nLinks := oSysPara:skaliereXbParts(5)
oText := feldtexte():new(oDialog:drawingarea,,{nlinks,nOben},,,,"L","Pin :")
nLinks += oText:currentSize()[1]
::oPin := mk_Sle():new(oDialog:drawingArea,,{nLinks,nOben},{nSleLaenge,nSleHoehe},,,"WWWWW")
::oPin:autoTab := .T.
::oPin:datalink := { |x| IIF( x==NIL, ::oPin, ::oPin := x) }
::oPin:bufferlength := 4
::oPin:tabStop := .T.
::oPin:unReadable := .T.
::oPin:create(oDialog)
oPbOk := PushButton():new(oDialog,,{oDialog:currentsize()[1]/2-nPbLaenge,10},{nPbLaenge,nPbHoehe})
oPbOk:caption := "OK"
oPbOk:tabStop := .T.
oPbOk:create(oDialog)
oPbOk:activate := { || IF(::satzsuchen(::oNummer:editbuffer(),,"nummer",,,,.T.) .AND. ::oPin:editbuffer() == ::pin,lExit := .T.,(lErfolg := .F.,lExit := .T.)) }
oPb := PushButton():new(oDialog,,{oPbOk:currentPos()[1]+oPbOk:currentsize()[1],oPbOk:currentPos()[2]},{nPbLaenge,nPbHoehe})
oPb:caption := "Abbruch"
oPb:tabStop := .T.
oPb:create(oDialog)
oPb:activate := { || lExit := .T., lErfolg := .F. }
oDialog:show()
SetAppFocus(::oNummer)
DO WHILE ! lExit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
::db_schliessen()
IF ! lErfolg
oSysPara:oMessage:anzeigen("Personalnummer/oder Pin falsch. Eingabe ungültig")
ENDIF
oDialog:destroy()
oDialog := NIL
RETURN lErfolg
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
wenn o:bufferSize := 10 ist was kommt dann mach 10 ...
wenn o:bufferSize := 4Manfred hat geschrieben:Wenn ich das 4 zeichen eingetippt habe, dann muß ein weiteres getippt werden (egal Space) dann wird der nächste PArt angesprungen.
genau SO
---
ein EDIT Control kann nur so viele Zeichen aufnehmen wie Platz in einer Box ist
will man "mehr" so muss man den ES_AUTOHSCROLL Style setzen.
der Default Buffer sind 32 und wird erhöht mit EM_SETLIMITTEXT
die Edit Control Notifications findet man hier
https://docs.microsoft.com/en-us/window ... ifications
das sind die Aktionen die ausgelöst werden können
der EN_MAXTEXT Notification Code ist wohl der den o:Typeout() nutzt
Sent when the current text insertion has exceeded the specified number of characters for the edit control.
The text insertion has been truncated.
Code: Alles auswählen
o:typeOut := {| uNIL1, uNIL2, self | ... }
---
nun kann man aber ein "invisible GET" als "Reader" eines SLE nehmen wie es XbpGET() macht.
\SOURCE\samples\solution\xbpget\xbpget.prg
gruss by OHR
Jimmy
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Erreichen Ende des SLE-Feldes
Jimmy,
ihr schreibt aneinander vorbei! Manfred hat unter eXpress++ das Problem, das bei erreichen der maximalen Länge der Eingabe nicht automatisch das nächste Feld angesprungen wird. Seine Erwartungshaltung ist (und so funktioniert es auch bei mir - allerdings mit XClass++), das nach Eingabe des letzten Zeichens sofort das Eingabefeld verlassen wird.
Also vier Zeichen sind maximal möglich, dann soll nach dem Eingeben des vierten Zeichens das nächste Feld angewählt werden und das fünfte Zeichen dort erscheinen.
Viele Grüße,
Martin
ihr schreibt aneinander vorbei! Manfred hat unter eXpress++ das Problem, das bei erreichen der maximalen Länge der Eingabe nicht automatisch das nächste Feld angesprungen wird. Seine Erwartungshaltung ist (und so funktioniert es auch bei mir - allerdings mit XClass++), das nach Eingabe des letzten Zeichens sofort das Eingabefeld verlassen wird.
Also vier Zeichen sind maximal möglich, dann soll nach dem Eingeben des vierten Zeichens das nächste Feld angewählt werden und das fünfte Zeichen dort erscheinen.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
Martin, Du liegst falsch.
Der Code oben zeigt doch, das es xbase++ pur ist. Und wir sind hier nicht im express++ Bereich
Der Code oben zeigt doch, das es xbase++ pur ist. Und wir sind hier nicht im express++ Bereich
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Erreichen Ende des SLE-Feldes
Nun,
dein Codeschnippsel könnte genau so auch in eXpress++ vorkommen - insofern ging ich mal davon aus, dass er aus deiner Hauptanwendung stammt.
Viele Grüße,
Martin
dein Codeschnippsel könnte genau so auch in eXpress++ vorkommen - insofern ging ich mal davon aus, dass er aus deiner Hauptanwendung stammt.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
nein, könnte er so nicht. Da steht nirgends irgend was mit DC...... drin.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Erreichen Ende des SLE-Feldes
hi,
p.s. auch mit SLEPIC() geht es nicht nur mit XbpGET()
ich bin nun kein XClass++ User aber auch dort gibt es IMHO ein InvisibleGet()
p.s. auch mit SLEPIC() geht es nicht nur mit XbpGET()
gruss by OHR
Jimmy
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Erreichen Ende des SLE-Feldes
Unsinn Manfred,
das sind alles Klassen und Funktionen, die du selber geschrieben hast - da muss auch keine DC vorkommen!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
prima, dass Du Dich so gut mit express++ und dessen Aufbau auskennst
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Erreichen Ende des SLE-Feldes
Du sagtest doch, es sei kein eXpress++, weil da nichts mit DC vorkäme.
Ich schrieb, dass das aus deinem Code nicht ersichtlich ist - da kommt nämlich auch nichts mit xbp_ vor.
Also deine Funktionen und Klassen - die von eXpress++ instantiiert sein können - oder auch direkt von Xbase++!
Viele Grüße,
Martin
Ich schrieb, dass das aus deinem Code nicht ersichtlich ist - da kommt nämlich auch nichts mit xbp_ vor.
Also deine Funktionen und Klassen - die von eXpress++ instantiiert sein können - oder auch direkt von Xbase++!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15689
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Erreichen Ende des SLE-Feldes
du könntest ein SLE ableiten, das bei jedem Tastendruck prüft ob die gewünschte Länge im EditBuffer() steht, falls ja noch ein TAB auf das Element senden, oder den Focus in ein anderes setzen.
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21165
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 206 Mal
- Danksagung erhalten: 67 Mal
Re: Erreichen Ende des SLE-Feldes
Hallo Hubert,
hatte ich versucht, aber leider zuerst falsch umgesetzt. Jetzt klappt es. Mal wieder zu einfach um selbst drauf zu kommen.....
hatte ich versucht, aber leider zuerst falsch umgesetzt. Jetzt klappt es. Mal wieder zu einfach um selbst drauf zu kommen.....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!