[Gambas-user] What replaces Desktop.Scale in gambas3?

Bruce Bruen bbruen at ...2308...
Mon Sep 26 00:04:14 CEST 2011


Thanks Fabian,
That (TextWidth) was what I didn't search for.
Got it working, but it is interesting that I have to "bump" the final
width value by an empirically determined amount to prevent the last
letter from being chopped.  The code if anyone is interested is :

________________________________________________________________________
Private Sub ReLoadList()
'' Reload the data in the gridview using the existing data set in
$cItems

  Dim wkItem As Todoitem        ' working copy of the object to be
displayed
  Dim idr, idc As Integer       ' row and column indexes
  Dim aItemValues As Variant[]  ' working array copy of the object
values that are displayed
  Dim aMaxW As Integer[]        ' max column width array

  ' Set up
  gvwList.Clear
  gvwList.Rows.Count = $cItems.Count
  aMaxW = New Integer[gvwList.Columns.Count]

  ' Initially set the max column width array values to the size of the
column titles
  For idc = 0 To gvwList.Columns.count - 1
    aMaxW[idc] = gvwList.Font.TextWidth(gvwList.Columns[idc].Title)
  Next

  ' Load the items from the source collection into the rows
  idr = 0
  For Each wkItem In $cItems
    With wkItem
      aItemValues =
[.ID, .Project, .Affects, .Title, .Type, .Status, .Priority]
    End With
    For idc = 0 To gvwList.Columns.Count - 1
      gvwList[idr, idc].Text = aItemValues[idc]
      ' and check to see if the max width value needs changing
      If (gvwList.Font.TextWidth(gvwList[idr, idc].Text) > aMaxW[idc])
Then aMaxW[idc] = gvwList.Font.TextWidth(gvwList[idr, idc].Text)
    Next
    Inc idr
  Next

  ' Finally set all the column widths according the the values in the
max column widths array
  For idc = 0 To gvwList.Columns.Count - 1
    gvwList.Columns[idc].Width = aMaxW[idc] + 7
  Next

End

________________________________________________________________________
See the last bit. I had to bump the computed value by 7 (for both gtk
and qt4) to stop the last letter being chopped.

regards
Bruce

On Sun, 2011-09-25 at 18:53 +0200, Fabien Bodard wrote:

> 2011/9/25 Bruce Bruen <bbruen at ...2308...>:
> > I'm trying to set a gridview column width to the maximum length of the
> > strings in the column.  I can find the maximum width in terms of the
> > length of the string easily but what do I multiply that by to get the
> > desired cloumn width?
> > I have searched through the wiki but I just cant seem to find what
> > replaces Desktop.Scale?
> why don't you use fontsize ?
> 
> iWidth = GridView1.Font.TextWidth(iMaxLetters)
> 
> > tia
> > Bruce
> > ------------------------------------------------------------------------------
> > All of the data generated in your IT infrastructure is seriously valuable.
> > Why? It contains a definitive record of application performance, security
> > threats, fraudulent activity, and more. Splunk takes this data and makes
> > sense of it. IT sense. And common sense.
> > http://p.sf.net/sfu/splunk-d2dcopy2
> > _______________________________________________
> > Gambas-user mailing list
> > Gambas-user at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gambas-user
> >
> 
> 
> 





More information about the User mailing list