Quickbrowse, Spaltenlänge vom Benutzer veränderbar

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 440
Registriert: Mo, 30. Mai 2011 15:06
Danksagung erhalten: 1 Mal

Quickbrowse, Spaltenlänge vom Benutzer veränderbar

Beitrag 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.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

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

Beitrag 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 )
gruss by OHR
Jimmy
Antworten