Hello Ricardo, I use this function to display a result in a TableView. I just copy it as is, you may find out how do I adjust the column width. Maybe not the simplest but works well.
For the Boolean I show the picture of a checkbox, I attached if you wanna try the code then add the pictures to your project or comment out the part uses them. Hope this helps. Robi '----------------------------------------------------------------------------------------------- PUBLIC FUNCTION fillTV(tv AS TableView, rs AS Result, OPTIONAL hideFirstCol AS Boolean = FALSE, OPTIONAL ignoreLastCols AS Integer = 0) AS Boolean 'to fill the tv tableview with the data of the rs result DIM k, j AS Long DIM iC AS Integer = 0 DIM c AS Long[2] DIM minW AS Integer, maxW AS Integer DIM colW AS NEW Integer[] DIM minH AS Integer, maxH AS Integer DIM colH AS NEW Integer[] DIM picF AS Picture = Picture.Load("picF.png") DIM picT AS Picture = Picture.Load("picT.png") minW = tv.Font.Width("X") * 5 maxW = minW * 30 minH = tv.Font.Height("H") maxH = minH * 10 c[0] = Color.White c[1] = Color.LightBackground tv.Clear tv.Rows.count = rs.Count tv.Columns.Count = rs.Fields.Count - ignoreLastCols tv.header = 3 FOR k = 0 TO tv.columns.count - 1 tv.Columns[k].Text = rs.Fields[k].name colW.Add(tv.Font.Width(tv.Columns[k].Text)) NEXT FOR j = 0 TO rs.count - 1 colH.Add(minH) FOR k = 0 TO tv.Columns.Count - 1 rs.MoveTo(j) IF rs.Fields[k].Type = db.Boolean THEN tv[j, k].Picture = IIf(rs[rs.Fields[k].name], picT, picF) ELSE IF rs[rs.Fields[k].name] = "00/00/00" THEN tv[j, k].text = "" ELSE tv[j, k].text = rs[rs.Fields[k].name] ENDIF tv[j, k].BackColor = c[iC] IF colW[k] < tv.Font.Width(tv[j, k].text) THEN colW[k] = tv.Font.Width(tv[j, k].text) IF colH[j] < tv.Font.Height(tv[j, k].text) THEN colH[j] = tv.Font.Height(tv[j, k].text) NEXT ic = 1 - ic NEXT FOR j = 0 TO tv.Rows.Count - 1 tv.Rows[j].H = Max(minH, Min(colH[j], maxH)) + 7 NEXT FOR k = 0 TO tv.Columns.Count - 1 tv.Columns[k].W = Max(minW, Min(colW[k], maxW)) + 15 NEXT IF hideFirstCol THEN tv.Columns[0].W = 0 tv.Columns[0].Resizable = FALSE ENDIF tv.Refresh RETURN TRUE CATCH RETURN FALSE END '----------------------------------------------------------------------------------------------- -----Original Message----- From: Ricardo Díaz Martín <oceanosoftlapa...@gmail.com> Reply-to: mailing list for gambas users <gambas-user@lists.sourceforge.net> To: mailing list for gambas users <gambas-user@lists.sourceforge.net> Subject: [Gambas-user] gridview autoresize columns width by code Date: Wed, 23 Jun 2010 12:24:49 +0200 Hi all, I wonder if there is a way to auto-resize a column in a grid view by code (the same when you double-cliked on run time to auto-size the width). I always save columns width in database and when form is loading set values for columns width. But now I need in one form to do this like if user double-clicked on border of columns. Thanks in advance, Ricardo ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user
<<attachment: picT.png>>
<<attachment: picF.png>>
------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user