Cursor positionieren im SLE

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Cursor positionieren im SLE

Beitrag von mini990 »

Hallo,
stehe gerade vor einem Rätsel.
(Wahrscheinlich eine Kleinigkeit aber ich finde es nicht...)
Ich kann in allen Programmteilen ( XbpDialog) den Curso im SLE beliebig platzieren.
Außer bei einem Dialogfenster.

Code: Alles auswählen

Beispiel 1, Cursor im SLE nicht mit der Maus positionierbar

oEXbp03 := XbpSLE():new( oXbpX, , {136,452}, {450,20}) //  Name
oEXbp03:bufferLength := 50 
oEXbp03:tabStop := .T.
oEXbp03:dataLink := {|X| IIf( x == NIL, RTrim(cName), cName := x )}
oEXbp03:lbDblClick := {| MP1, uNIL, o| DisablePushButtons(oXbpX), F1_Name( "Name", oXbpX, oXbpBMP, , oEXbp01, oEXbp02, oEXbp03, oEXbp04, oEXbp05, ,"M" ), EnablePushButtons(oXbpX), SetAppFocus(oEXbp04) }
oEXbp03:editable := .T.
oEXbp03:clipSiblings := .T.
oEXbp03:setFontCompoundName( "14.Lucida Console" ) 
oEXbp03:setColorFG( GRA_CLR_BLACK )
oEXbp03:setColorBG( GRA_CLR_PALEGRAY )
oEXbp03:align:= XBPSLE_LEFT
oEXbp03:border := .F.
oEXbp03:create()
oEXbp03:SetData()
oEXbp03:killInputFocus := { |x,y,oSLE| oEXbp03:getData()} 
AAdd ( aEditControls, oEXbp03 )

Beispiel 2, Cursor im SLE mit der Maus positionierbar

oXbp1a := XbpSLE():new( oXbp0, , {10,655}, {430,28}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp1a:tabStop := .T.
oXbp1a:Bufferlength:=40
oXbp1a:dataLink := {|X| IIf( x == NIL, trim(bank1), bank1 := x ) }
oXbp1a:setFontCompoundName( "16.Times New Roman" )
oXbp1a:setColorFG( GRA_CLR_BLACK )
oXbp1a:create()
oXbp1a:setdata()
oXbp1a:killInputFocus := { |x,y,oSLE| oSLE:getData() } 
Die Includes sind identisch, der Aufbau von XbpDialog ebenso.
Kann mir jemand sagen was ich gerade nicht sehe?????

Danke im Voraus

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

Re: Cursor positionieren im SLE

Beitrag von georg »

Hallo, Stefan -


hast Du mal beide Variante in einem XbpDialog() untergebracht? Verhalten sie sich dort ebenfalls unterschiedlich, oder identisch?
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Cursor positionieren im SLE

Beitrag von georg »

Hallo, Stefan -


also, ich habe mal ein kleines Testprogramm gebaut, um diese beiden Objekte in eine :drawingArea zu bringen. Ich kann in beiden SLEs den Cursor sowohl mit der Maus als auch mit der Tastatur (Alt-Tab und Cursor-Tasten) beliebig positionieren.

Es könnte also an der Definition des Dialogfensters liegen.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
mini990
1000 working lines a day
1000 working lines a day
Beiträge: 592
Registriert: Sa, 28. Jan 2006 9:44
Wohnort: Berg-Richtheim bei Neumarkt i.d.Opf.
Danksagung erhalten: 1 Mal

Re: Cursor positionieren im SLE

Beitrag von mini990 »

Hallo Georg,
imho sind die beiden XbpDialog gleich definiert...

Code: Alles auswählen

Beispiel 1, Cursor im SLE nicht mit der Maus positionierbar

aSize    := {1100,800}
aRefSize:=oXbpBMP:currentSize()
aPos:= { Int( (aRefSize[1]  - aSize[1] ) / 2 ), Int( (aRefSize[2] - aSize[2] ) / 2  ) }

oXbpX := XbpDialog():new( oXbpBMP, , aPos, aSize, , .F.)
oXbpX:taskList := .F.
oXbpX:clipSiblings := .T.
oXbpX:MaxButton:= .F.
oXbpX:MinButton:= .F.
oXbpX:border := XBPDLG_DLGBORDER
oXbpX:close := {|| lExit := .T. }
oXbpX:title := "Bearbeiten"
oXbpX:setFontCompoundName( "16.Times New Roman" )
oXbpX:create()




oEXbp03 := XbpSLE():new( oXbpX, , {136,452}, {450,20}) //  Name
oEXbp03:bufferLength := 50 
oEXbp03:tabStop := .T.
oEXbp03:dataLink := {|X| IIf( x == NIL, RTrim(cName), cName := x )}
oEXbp03:lbDblClick := {| MP1, uNIL, o| DisablePushButtons(oXbpX), F1_Name( "Name", oXbpX, oXbpBMP, , oEXbp01, oEXbp02, oEXbp03, oEXbp04, oEXbp05, ,"M" ), EnablePushButtons(oXbpX), SetAppFocus(oEXbp04) }
oEXbp03:editable := .T.
oEXbp03:clipSiblings := .T.
oEXbp03:setFontCompoundName( "14.Lucida Console" ) 
oEXbp03:setColorFG( GRA_CLR_BLACK )
oEXbp03:setColorBG( GRA_CLR_PALEGRAY )
oEXbp03:align:= XBPSLE_LEFT
oEXbp03:border := .F.
oEXbp03:create()
oEXbp03:SetData()
oEXbp03:killInputFocus := { |x,y,oSLE| oEXbp03:getData()} 
AAdd ( aEditControls, oEXbp03 )

Beispiel 2, Cursor im SLE mit der Maus positionierbar

oXbp00 := XbpDialog():new( oParent1, , {8,400}, {785,230}, , .F. )
oXbp00:taskList := .F.
oXbp00:MaxButton:= .F.
oXbp00:MinButton:= .F.
oXbp00:border := XBPDLG_DLGBORDER
oXbp00:close := {|| lExit := .T. }
oXbp00:SysMenu:=.F.
oXbp00:title := "Bearbeiten"
oXbp00:clipSiblings := .T.
oXbp00:setColorFG( GRA_CLR_DARKGRAY )
oXbp00:setFontCompoundName( "16.Times New Roman" )
oXbp00:create()


oXbp1a := XbpSLE():new( oXbp0, , {10,655}, {430,28}, { { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp1a:tabStop := .T.
oXbp1a:Bufferlength:=40
oXbp1a:dataLink := {|X| IIf( x == NIL, trim(bank1), bank1 := x ) }
oXbp1a:setFontCompoundName( "16.Times New Roman" )
oXbp1a:setColorFG( GRA_CLR_BLACK )
oXbp1a:create()
oXbp1a:setdata()
oXbp1a:killInputFocus := { |x,y,oSLE| oSLE:getData() } 
Deswegen steh ich da grad etwas auf dem Schlauch...

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

Re: Cursor positionieren im SLE

Beitrag von georg »

Hallo, Stefan -


einfach die beiden Dateien umwandeln und linken, ausprobieren.

Meine Erfahrung in den vergangenen Jahren war: wenn eine vereinfachte Version korrekt funktioniert, liegt es irgendwo an meinem spezifischen Programmumfeld. Und in dieser Version funktioniert es - zumindest bei meinem Test - einwandfrei.
Dateianhänge
SLETest.prg
(2.04 KiB) 249-mal heruntergeladen
AppSys.prg
(1.18 KiB) 256-mal heruntergeladen
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Antworten