xbpSLE

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
saul
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 284
Registriert: So, 26. Mär 2006 12:23

xbpSLE

Beitrag von saul »

Hallo,
ich habe mir ein Eingabefeld zusammengebaut:

Code: Alles auswählen

   #include "Appevent.ch"

   PROCEDURE Main
      LOCAL nEvent, mp1, mp2, oXbp
      SetColor("N/W")
      CLS

      oXbp              := XbpSLE():new()
      oXbp:bufferLength := 20
      oxbp:editable:= .T.
      oXbp:create( , , {100,200}, {100,30} )
      oXbp:setData("TEST")
      SetAppFocus( oxbp )              // SLE bekommt Eingabefokus

      // Event loop = Programmsteuerung
      nEvent := 0
      DO WHILE nEvent <> xbeP_Close
         nEvent := AppEvent( @mp1, @mp2, @oXbp )
         oXbp:handleEvent( nEvent, mp1, mp2 )
      ENDDO
   RETURN

Mann kann doch bestimmt die Eingabe formatieren wie früher mittels picture usw. In der Hilfe habe ich unter xbpsle dazu keinen Hinweis gegeben.
Wie geht das?
Ist auch ein valid usw. wie bei @.. get möglich?
Ist ein :setdata() auf jeden Fall erforderlich? Habe ich in der Hilfe unter "Ein DataDialog zur Integration von Datenbanken" gefunden xbp:create():setdata()

mfg
Wolfgang
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2824
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: xbpSLE

Beitrag von georg »

Guten Morgen, Wolfgang -


ein XbpSLE() ist ein Control, mit dem man alphanumiersche Daten eingeben kann. Es bietet nicht die Möglichkeit, die Eingabe (oder vorhandene Daten) in irgendeinerweise zu formatieren.

Wenn Du das brauchst, solltest Du Dir die SLEPic Klasse von James Laughner anschauen, die Du hier findest:

http://gogalthorp.com/splash/

Die Methode :setData() wird benötigt, wenn Du vor der Anzeige bestimmte Daten in einem XbpSLE eintragen willst, die angezeigt werden sollen (wie z.B. Daten aus einem Datenbankfeld, die editiert werden sollen).


Gruss,

Georg
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: xbpSLE

Beitrag von Herbert »

Hallo Saul
Schau hier:
http://www.xbaseforum.de/viewtopic.php? ... lit=slepic
oder hier:
http://www.xbaseforum.de/viewtopic.php? ... lit=slepic
und hier:
http://www.xbaseforum.de/viewtopic.php? ... =clickdate

Ich setze ein angepasstes SLEPIC ein, weil das von James die setlocale nicht berücksichtigte. Wir Schweizer z.B. verwenden für die Trennung der Dezimalstelle einen Punkt und ihr in Deutschland ein Komma.
Dazu erzeugt ein Doppelklick im SLE einen anschaulichen Kalender zur Datumwahl.

Ich kann dir die angepassten SLEPIC per PN zukommen lassen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: xbpSLE

Beitrag von brandelh »

Weil mir keine der angebotenen Lösungen gefallen hat, habe ich das XbpSle() abgeleitet und nutze Spezialformen für Datum, Zahlen (mit picturemaske) und beschränkte Eingaben.
Hier habe ich meinen Code veröffentlicht:

:arrow: http://www.xbaseforum.de/viewtopic.php? ... it=hb_zahl

PS: in anderen Sprachen regelt man sowas über Styles und es gibt sogar einen numerischen von Microsoft.
Der kann aber NUR Ziffern und ist somit für eine richtige Zahleneingabe auch unbrauchbar.
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9355
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: xbpSLE

Beitrag von Tom »

Für Ein-/Umsteiger mag die (in Xbase++ geschriebene und als Quellcode erhältliche) Bibliothek "eXpress++" von Roger Donnay sehr hilfreich sein. Sie enthält tonnenweise Klassen (und zig Zusatzfunktionen), die es erlauben, im Clipper-Stil zu programmieren, jedoch eine echte GUI-Anwendung zu erhalten. Die Bibliothek kostet nur ein paar Dollar, der Support ist erstklassig: www.donnay-software.com
Code sieht dann beispielsweise so aus:

Code: Alles auswählen

cName := Space(30)
@ 1,1 DCSAY 'Name:' GET cName PICTURE Replicate("!",30) VALID {||!Empty(cName)}
DCREAD GUI FIT
Daraus entsteht u.a. ein Dialog, ein formatiertes SLE (mit Valid und vielen Optionen, die hier fehlen), ein mächtiger Eventhandler wird eingebunden, Resizing, Skalierung und tausend andere Sachen stehen zur Verfügung.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: xbpSLE

Beitrag von AUGE_OHR »

saul hat geschrieben:Mann kann doch bestimmt die Eingabe formatieren wie früher mittels picture usw. In der Hilfe habe ich unter xbpsle dazu keinen Hinweis gegeben.
Wie geht das?
Ist auch ein valid usw. wie bei @.. get möglich?
Ist ein :setdata() auf jeden Fall erforderlich? Habe ich in der Hilfe unter "Ein DataDialog zur Integration von Datenbanken" gefunden xbp:create():setdata()
wenn du "Bordwerkzeug" verwenden willst siehe dir C:\ALASKA\XPPW32\Source\samples\solution\xbpget\xbpget.prg an.
gruss by OHR
Jimmy
Antworten