[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