DCGET und Cursorposition [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
DCGET und Cursorposition [ERLEDIGT]
Hi,
irgendwie stehe ich wieder auf dem Schlauch. Ich baue den Inhalt eines DCGET zusammen und übergebe ihn per setdata(). Das klappt auch, was muß ich nun tun, damit der Cursor hinter dem letzten Zeichen steht, wenn das Getfeld den Focus erhält, damit der Rest ergänzt werden kann vom User.
irgendwie stehe ich wieder auf dem Schlauch. Ich baue den Inhalt eines DCGET zusammen und übergebe ihn per setdata(). Das klappt auch, was muß ich nun tun, damit der Cursor hinter dem letzten Zeichen steht, wenn das Getfeld den Focus erhält, damit der Rest ergänzt werden kann vom User.
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition
Beim Get:
Funktion EndOfGet:
Hatte ich m.E. schon mal irgendwann gepostet.
Code: Alles auswählen
GETEVAL {|o|o:setInputFocus:={|a,b,o|EndOfGet(o,GetOptions)}}
Code: Alles auswählen
PROCEDURE EndOfGet(oXbp, GetOptions,lPlusOne) // lPlusOne=.T. for space at the end
LOCAL x // of the get, this is the default
DC_ValType(@lPlusOne,.T.)
x := Len(alltrim(oXbp:getdata()))+IIF(lPlusOne,2,1)
Re_ColorGets(oXbp,1,GetOptions)
x := IIF(x<IIF(lPlusOne,3,2), 1, x) // If empty goto position 1
oXbp:Get:Pos := x
oXbp:setMarked({x,x}) // put cursor at end of text
RETURN
***********************************
static FUNCTION Re_ColorGets( o, nMode, GetOptions )
LOCAL aPres, aColor
IF valType(GetOptions) = "A"
aColor := GetOptions[aGETOPT_COLORGETS]
ELSE
aColor := DC_GetOptDefault()[aGETOPT_COLORGETS]
ENDIF
IF !Empty(aColor)
IF Len(aColor) < 2
AAdd(aColor,{ GRA_CLR_BLACK, GRA_CLR_WHITE })
ENDIF
IF nMode = 1
aPres := { { XBP_PP_FGCLR, aColor[1,1] } , { XBP_PP_BGCLR, aColor[1,2] } }
ELSE
aPres := { { XBP_PP_FGCLR, aColor[2,1] } , { XBP_PP_BGCLR, aColor[2,2] } }
ENDIF
o:setPresParam(aPres)
ENDIF
RETURN nil
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
Hi Wolfgang,
das xbp:get ist doch das Eingabefeld. Wenn ich dann pos dahinterpacke, dann gibt es eine Fehlermeldung. Das hatte ich nämlich schon probiert. Im debugger aufgerufen gibt es ein DC-XbpGet zurück. Aber mit pos dahinter behauptet Xbase das wäre unbekannt.
Muß ich morgen nochmal genauer ansehen, was ich da verzapft habe.
das xbp:get ist doch das Eingabefeld. Wenn ich dann pos dahinterpacke, dann gibt es eine Fehlermeldung. Das hatte ich nämlich schon probiert. Im debugger aufgerufen gibt es ein DC-XbpGet zurück. Aber mit pos dahinter behauptet Xbase das wäre unbekannt.
Muß ich morgen nochmal genauer ansehen, was ich da verzapft habe.
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: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
ich hatte noch was vergessen zu sagen gestern. Da ich ja genau weiß, an welcher Stelle der Cursor stehen sollte, hatte ich es auch mit setmarked() ausprobiert. Das klappte auch nicht. Irgendwas mache ich da wohl falsch!?
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
Code: Alles auswählen
@ oDialogZusatz:nOben,oDialogZusatz:nLinks DCSAY "Bestellnr.:";
OBJECT oDialogZusatz:oText;
PARENT oDialogZusatz:oRahmenKopf;
SIZE oDialogZusatz:nSaybreite,oDialogZusatz:nSayHoehe
@ DCGUI_ROW,DCGUI_COL DCGET oDialogZusatz:oBestellung:bestellnr;
EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl,;
oDialogZusatz:oBestellung:addEditControl(o,.F.,,.T.);
};
GETPRESENTATION {{ XBP_PP_DISABLED_FGCLR, GRA_CLR_BLACK }};
GOTFOCUS {|| bestellnrformat(oDialogzusatz)};
OBJECT oDialogZusatz:oBestellung:oBestellnr;
PARENT oDialogZusatz:oRahmenKopf;
PICTURE "XXXXXXXXXXX";
SIZE oSysPara:skaliereXbParts(110),oDialogZusatz:nSayHoehe;
TABSTOP
********************************************************************************
STATIC FUNCTION bestellnrformat(oDialog)
oDialog:oBestellung:oBestellnr:setMarked({9,3})
RETURN .T.
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition
Und wenn du da statt GOTFOCUS mal mein GETEVAL einsetzt ?
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
oops,
ich dachte ich hätte geantwortet. Das klappt auch nicht. Nochmals erwähnt: Ich erzeuge die Eingabemaske und sobald ich auf Ändern gehe, wird der Wert für besagtes Getfeld erzeugt und mit setData() eingespielt. Wenn dann mittels Tab das Eingabefeld angesprungen wird, ist es komplett unterlegt und der Cursor steht am Anfang.
ich dachte ich hätte geantwortet. Das klappt auch nicht. Nochmals erwähnt: Ich erzeuge die Eingabemaske und sobald ich auf Ändern gehe, wird der Wert für besagtes Getfeld erzeugt und mit setData() eingespielt. Wenn dann mittels Tab das Eingabefeld angesprungen wird, ist es komplett unterlegt und der Cursor steht am Anfang.
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition
Ja, das macht ja wohl der Teil:
Deswegen meinte ich mal raus damit.
Code: Alles auswählen
GOTFOCUS {|| bestellnrformat(oDialogzusatz)}
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
verstehe ich jetzt nicht. Was soll anders sein, wenn ich das entferne? Irgendwo muß ich doch setmarked() setzen.
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition
Warum soll denn das gleich markiert sein, wenn du am Ende weiterschreiben möchtest ?
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
ach so,
das war nur ein Versuch den Cursor überhaupt ans Ende zu stellen, weil alles andere ja anscheinend nicht zum Erfolg führte. Und ob der da markiert ist, ist ja egal, Hauptsache am Ende....
das war nur ein Versuch den Cursor überhaupt ans Ende zu stellen, weil alles andere ja anscheinend nicht zum Erfolg führte. Und ob der da markiert ist, ist ja egal, Hauptsache am Ende....
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition
Auh man, sowas blödes aber auch.
Das konnte ja auch nicht optisch klappen. :setMarked() erwartet den Anfangswert und den Endwert nicht wie ich es gemacht habe die Länge. In meinem Fall muß es einfach so gemacht werden z.B.
Und das muß auch anscheinend so bleiben. Wenn ich z.B. 9,9 mache, dann springt der Cursor zwar ans Ende, aber sobald ich tippe springt er an den Anfang und überschreibt dann den vorhandenen Wert. Warum macht er denn sowas?
Das konnte ja auch nicht optisch klappen. :setMarked() erwartet den Anfangswert und den Endwert nicht wie ich es gemacht habe die Länge. In meinem Fall muß es einfach so gemacht werden z.B.
Code: Alles auswählen
@ DCGUI_ROW,DCGUI_COL DCGET oDialogZusatz:oBestellung:bestellnr;
EVAL {|o| o:usevisualstyle := oSysPara:oWsPara:VisualStyl,;
oDialogZusatz:oBestellung:addEditControl(o,.F.,,.T.),;
o:setInputFocus := {|a,b,o|o:setMarked({9,11})}; <-- wenn ich 9,9 mache, dann siehe unten
};
GETPRESENTATION {{ XBP_PP_DISABLED_FGCLR, GRA_CLR_BLACK }};
OBJECT oDialogZusatz:oBestellung:oBestellnr;
PARENT oDialogZusatz:oRahmenKopf;
PICTURE "XXXXXXXXXXX";
SIZE oSysPara:skaliereXbParts(110),oDialogZusatz:nSayHoehe;
TABSTOP
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition [ERLEDIGT]
Ich weiss nicht, warum du so an deinem SetMarked hängst
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition [ERLEDIGT]
weil es mit dem pos nicht klappte
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCGET und Cursorposition [ERLEDIGT]
Hier ein kurzes Testprogramm, damit du siehst, das es funktioniert.
- Dateianhänge
-
- test.zip
- (946 Bytes) 231-mal heruntergeladen
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2935
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
- Manfred
- Foren-Administrator
- Beiträge: 21192
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: DCGET und Cursorposition [ERLEDIGT]
Ich habe es mit dem geteval probiert und das klappt jetzt so wie ich es haben möchte. Danke für den Tipp.
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!!