[Gambas-user] Dynamic Controls / Grid?

M0E Lnx m0e.lnx at ...626...
Thu Jun 26 23:29:54 CEST 2008


Ah!... then whad you need my friend is a way to determine each
components width and move the rest of them accordingly

Take a look at this function that I have written and use a lot.

PUBLIC SUB get_object_width(sText AS String) AS Integer


  DIM iRetVal AS Integer
  DIM fvirtfrm AS Form
  DIM datemp AS DrawingArea


  fvirtfrm = NEW Form
  WITH fvirtfrm
    .Width = 300
    .Height = 200
  END WITH
  datemp = NEW DrawingArea(fvirtfrm)

  Draw.Begin(datemp)
  iRetVal = Draw.RichTextWidth(sText)
  Draw.End
  RETURN iRetVal


END

This will draw (but not display) an object, and give necessary .width
property to display the .text property on the object.

If you can figure out exactly how wide each object needs to be, then
you can set the right .X property for each object and keep them from
overlaping

you use it like this

Textbox1.Width = get_object_width(Textbox1.text)
Textlabel1.Width = get_object_width(Textlabel1.text)
Checkbox1.Width = get_object_width(checkbox1.text) + 24 ' Add extra
space for your square box on this one

Then, you arrange your objects like this

textlabel1.move(textbox1.left + (textbox1.width + 4), textbox1.top) '
leave a 4 pixel space between them
checkbox1.move(textlabel1.left + (textlabel1.width + 4), textlabel1.top)




On 6/26/08, Nate-37 <Nathan.Neff at ...626...> wrote:
>
>  > Do you really mean (3) objects for each search result?
>
>
> Yes, I need 3 objects for each result.  My problem is not with creating the
>  objects, it's being able to view them.
>
>  I would like an easy way to make the objects visible.  Currently I can only
>  see the first checkbox that's created.  The others then pile up on top of
>  the first one.  I can dabble with their top, bottom, left right properties,
>  but that sounds like more work than what's needed.
>
>  I found a demo in the "Beginner's Guide to Gambas" where it shows how the
>  VPanel, HPanel, HBox and VBox will **automatically** arrange their child
>  controls when the application starts.  The beginner's guide is here:
>  http://vectorlinux.osuosl.org/Uelsk8s/gambas-beginner-guide.pdf
>
>  Is there some method that I can call, like VPanel.Arrange()  that would do
>  the same thing?  I've tried several of the methods already, and can't get
>  them to reveal the other checkboxes.
>
>  Thanks,
>
>  --Nate
>
>
>
>  M0E Lnx wrote:
>  >
>  > Do you really mean (3) objects for each search result?
>  >
>  > In case you do, You can do it like this.
>  > Put the results in an array
>  > then run trhough the array creating the stuff
>  >
>  > like this
>  > PUBLIC SUB DYNAMIC_OBJECTS()
>  > DIM sResults as string '(this is the raw list of results)
>  > DIM sRes as string[]
>  > DIM i as integer
>  > DIM sResult as string '(Single result) in the array
>  >
>  > DIM txtBox as textbox
>  > DIM tTextLabel as TextLabel
>  > dim cbCheck as Checkbox
>  >
>  >
>  >
>  > 'We will assume you are separating your l ist with a space
>  >
>  > sRes = split(sResults, " ")
>  > FOR i = 0 to sRes.count - 1
>  > txtBox = new textbox(YourParentHere)
>  > tTextlabel  = new textlabel(YourParentHere)
>  > cbCheck = new checkbox(YourParentHere)
>  >
>  > NEXT
>  >
>  > END
>  >
>  > Of couse, you'll have to set the properties for each of these objects
>  > after you create them...
>  > This code may not work out of the box, but it should give you an idea
>  > of how to do this
>  >
>  >
>  >
>  >
>  > On 6/26/08, Nate-37 <Nathan.Neff at ...626...> wrote:
>  >>
>  >>  Hello,
>  >>
>  >>  I would like to be able to create a Label, a Textbox and a Checkbox for
>  >> a
>  >>  variable number of records.
>  >>
>  >>  I'm not dealing with a database, I'm dealing with search results.
>  >>
>  >>  So, if I find 3 search results, I would like to create a Label, a
>  >> Textbox
>  >>  and a Checkbox for each search result like so:
>  >>
>  >>
>  >>  Search Results:
>  >>
>  >>  Result         Change To:       Change?
>  >>  -----------------------------------
>  >>  Foo            FOOFOO           X
>  >>  Bar             BARBAR            X
>  >>  Baz
>  >>
>  >>
>  >>  Go!
>  >>
>  >>  What is a good way of creating these dynamic controls, as well as
>  >> arranging
>  >>  them so that they appear like in the example above?
>  >>
>  >>  I'm playing around with the HPanel, VPanel, HBox and VBox, and will post
>  >> my
>  >>  results if I find something that works.  I would use a grid, except that
>  >> I
>  >>  want to have a Checkbox in the 3rd column.  Is there any way to place a
>  >>  checkbox in a Grid?
>  >>
>  >>  Thanks,
>  >>  --Nate
>  >>  --
>  >>  View this message in context:
>  >> http://www.nabble.com/Dynamic-Controls---Grid--tp18140539p18140539.html
>  >>  Sent from the gambas-user mailing list archive at Nabble.com.
>  >>
>  >>
>  >>
>  >> -------------------------------------------------------------------------
>  >>  Check out the new SourceForge.net Marketplace.
>  >>  It's the best place to buy or sell services for
>  >>  just about anything Open Source.
>  >>  http://sourceforge.net/services/buy/index.php
>  >>  _______________________________________________
>  >>  Gambas-user mailing list
>  >>  Gambas-user at lists.sourceforge.net
>  >>  https://lists.sourceforge.net/lists/listinfo/gambas-user
>  >>
>  >
>  > -------------------------------------------------------------------------
>  > Check out the new SourceForge.net Marketplace.
>  > It's the best place to buy or sell services for
>  > just about anything Open Source.
>  > http://sourceforge.net/services/buy/index.php
>  > _______________________________________________
>  > Gambas-user mailing list
>  > Gambas-user at lists.sourceforge.net
>  > https://lists.sourceforge.net/lists/listinfo/gambas-user
>  >
>  >
>
>
> --
>  View this message in context: http://www.nabble.com/Dynamic-Controls---Grid--tp18140539p18142380.html
>
> Sent from the gambas-user mailing list archive at Nabble.com.
>
>
>  -------------------------------------------------------------------------
>  Check out the new SourceForge.net Marketplace.
>  It's the best place to buy or sell services for
>  just about anything Open Source.
>  http://sourceforge.net/services/buy/index.php
>  _______________________________________________
>  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