Seite 1 von 1

Quickbrowse, Spaltenlänge vom Benutzer veränderbar

Verfasst: Di, 15. Sep 2015 15:02
von Benz
Hi, ich kann machen, was ich will, ich bekomme es einfach nciht hin, dass der Benutzer die Spaltenlänge in einem XbpQuickBrowse verändern kann.
Ich habe in der Hilfe die Eigenschaft :sizeCols := .T. gefunden, die standardmäßig sowieso auf .T. sein sollte. Diese habe ich dann auch auf .T. gesetzt, doch leider ohne den gewünschten Erfolg.
Hier mein Code:

Code: Alles auswählen

    
     browse_pos[1] := 0
     browse_pos[2] := 0
     browse_size[1] := oDlg_browse:currentSize()[1]-16
     browse_size[2] := oDlg_browse:currentSize()[2]-39

     oBrowse := XbpQuickBrowse():new(oDlg_browse:drawingArea,,browse_pos, browse_size,{ { XBP_PP_COMPOUNDNAME, "8.Arial" } })
     oBrowse:sizeCols := .T.
     oBrowse:dataLink := DacPagedDataStore():new(aSequences)
     oBrowse:create()

     oBrowse:setHeader(aHeader)
     oBrowse:setColWidth(100,2)

     oBrowse:forceStable()

     oDlg_browse:resize := {|aOldSize, aNewSize, oSelf | ;
         proc_resize_sequence_browse( oBrowse ;
                                    , aNewSize ;
                                    ) ;
         }

     SetAppFocus(oBrowse)
DAnn hab ich noch versucht mit setColWidth() die Spaltenlänge für alle Spalten auf ein Mindestmaß zu stellen, was laut Hilfe gehen sollte, wenn man den zweiten Parameter weglässt, doch dann kommt auch ein Fehler. Vielleicht ist das mit meiner Version von Xbase++ einfach noch so (1.90355).

Und noch etwas: und zwar habe ich versucht mit setHeader den Header zu ändern, das funktioniert soweit auch, aber g ibt es nicht noch eine Möglichkeit den Header mit einer Eigenschaft zu ändern statt mit einer Methode? Z.b. Über den Datalink? Ansonsten wird die Spaltenbreite ja nicht automatisch an den Inhalt des Headers angepasst.

Re: Quickbrowse, Spaltenlänge vom Benutzer veränderbar

Verfasst: Di, 15. Sep 2015 20:25
von AUGE_OHR
Benz hat geschrieben:Hi, ich kann machen, was ich will, ich bekomme es einfach nciht hin, dass der Benutzer die Spaltenlänge in einem XbpQuickBrowse verändern kann.
Ich habe in der Hilfe die Eigenschaft :sizeCols := .T. gefunden, die standardmäßig sowieso auf .T. sein sollte. Diese habe ich dann auch auf .T. gesetzt, doch leider ohne den gewünschten Erfolg.
wäre ein Wunder wenn du es mit o:sizeCols geschafft hättest denn es ist nur für XbpBrowse()
Benz hat geschrieben:DAnn hab ich noch versucht mit setColWidth() die Spaltenlänge für alle Spalten auf ein Mindestmaß zu stellen, was laut Hilfe gehen sollte, wenn man den zweiten Parameter weglässt, doch dann kommt auch ein Fehler. Vielleicht ist das mit meiner Version von Xbase++ einfach noch so (1.90355).
kann ich bestätigen mit dem Sample c:\ALASKA\XPPW32\Source\samples\basics\QBrowse\QBROWSE1.prg
oError:args :
-> VALTYPE: O CLASS: XbpMultiCellGroup
-> VALTYPE: U VALUE: NIL
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter hat falschen Typ
oError:filename :
oError:genCode : 2
oError:operation : :GetColWidth
oError:osCode : 0
oError:severity : 2
oError:subCode : 3
oError:subSystem : BASE
oError:thread : 1
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von XBPQUICKBROWSE:SETCOLWIDTH(1927)
Aufgerufen von MAIN(82)
Benz hat geschrieben:Und noch etwas: und zwar habe ich versucht mit setHeader den Header zu ändern, das funktioniert soweit auch, aber gibt es nicht noch eine Möglichkeit den Header mit einer Eigenschaft zu ändern statt mit einer Methode? Z.b. Über den Datalink? Ansonsten wird die Spaltenbreite ja nicht automatisch an den Inhalt des Headers angepasst.
nach dem ändern würde ich ein Hide()/Show() versuchen.
ein Header hat IMHO kein o:Datalink
eine Method kann per ASSIGN / ACCESS durch eine Property "gesteuert" werden.( siehe http://www.xbaseforum.de/viewtopic.php?f=29&t=8781 )