Ich erstelle ein Edit-Feld:
oSleSensor := dsSle():new(oEdit, , {60,280}, {80,20}, , .T. )
czahl:=recno()
oSleSensor:clipSiblings := .T.
oSleSensor:tabStop := .T.
oSleSensor:bufferLength := 13
if cmode = "bearbeiten"
oSleSensor:setdata( osrv1:fieldget(3),,)
endif
oSleSensor:create()
Wenn setdata nicht ausgeführt wurde, wird linksbündig angefangen, wenn aber nicht dann wird rechts angefangen und das Value, was editiert werden soll, wird erst nach einem Tastendruck angezeigt. Was muss ich tun, damit die Daten ohne Tastendruck sofort links angezeigt werden?
xclass Edit-Feld
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 417
- Registriert: Mo, 17. Sep 2007 18:20
- Wohnort: Senftenberg
- Kontaktdaten:
wenn ich das mache, werden im gesamten Feld nur noch große "X" angezeigt.Sören hat geschrieben:Hallo Stevie,
mach mal das ::SetData() erst nach dem ::Create(), dann sollte es
eigentlich funktionieren.
Zuletzt geändert von stevie am Mi, 17. Okt 2007 10:18, insgesamt 2-mal geändert.
-
- Rekursionen-Architekt
- Beiträge: 417
- Registriert: Mo, 17. Sep 2007 18:20
- Wohnort: Senftenberg
- Kontaktdaten:
Ergänzung: Das tritt nur auf, wenn die Feldinhalte numerisch sind.brandelh hat geschrieben:Hi,
normalerweise kann man in Xbase++ Methoden erst aufrufen sobald das Create() erfolgt ist (Ausnahme oXbpPrinter:list()). Warum die X erscheinen, keine Ahnung eventuell signalisieren sie aber eine Art Feldüberlauf wie die * bei GET ?
Wenn sie Zeichen sind, klappts. Das heißt, wenn ich die Daten vorher mit alltrim und str bearbeite, werden sie ordentlich angezeigt. setdata() muss natürlich dabei hinter create() ausgeführt werden.
Wenn ich die aber so bearbeite muss ich sie ja danach wieder mit val() in numerisch verwandeln, damit das in die Db eingetragen werden kann.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 115 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Stevie,
damit XClass++ weiß, was es darstellen soll, musst Du natürlich einige Angaben machen - z.B. einen :datalink mitgeben.
So mache ich das bei mir (ohne Probleme) mit einem numerischen Feld:
Wenn Du kein Feld aus einer Datenbank nimmst, sondern eine Variable, musst Du diese vorher zwingend initialisieren, damit das dsSle weiß, was auf es zukommt!
Viele Grüße,
Martin
damit XClass++ weiß, was es darstellen soll, musst Du natürlich einige Angaben machen - z.B. einen :datalink mitgeben.
So mache ich das bei mir (ohne Probleme) mit einem numerischen Feld:
Code: Alles auswählen
::Coden := dsSle():new( ::drawingArea, , {130,398}, {30,18} )
::Coden:bufferLength := 3
::Coden:tabStop := .T.
::Coden:autoTab := .T.
::Coden:Picture := "@K 999"
::Coden:Tooltip := "Geben Sie die Codenummer des Hundes an!"
::Coden:KillInputFocus := { |a,b,obj| ::hcrtest( obj ) }
::Coden:dataLink := {|x| IIf( PCOUNT()==0, &dateiname->Coden, &dateiname->Coden := x ) }
AAdd( ::editControls, ::Coden )
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.