Forum: FXRuby Multi FXDataTarget

2425bf7497ca985dc9a7b2d5d0212d25?d=identicon&s=25 toto tartemolle (sleepin_banana)
on 2011-07-27 11:00
Hello There
I'm trying to create a window that will display a line similar to what
datatarget.rb exemple does, except it would do it for an unknown number
of items, stocked in a given array.

Here is the code I would like to use except it doesn't work:

#@repartition is a hash {string => [int,int]}
#tech is the array of items & item.name is one of the keys of
@repartition

  @sum_current=FXDataTarget.new(0)

  @current_techname=FXDataTarget.new("")

  @sum_current.connect(SEL_CHANGED){
      @sum=@sum_current.value
  }

  @repartition.each{|key,val|
      @sum_current.value=@sum_current.value+val[1]
  }

  datas=[]
  k=0

  tech.each{|t|

      FXLabel.new(mtrix,"#{t.name}:")

      @repartition["#{t.name}"][0]=1

      datas.push(FXDataTarget.new(@repartition["#{t.name}"][1]))

      datas[k]

      datas[k].connect(SEL_CHANGED){

         @sum_current.value=@sum_current.value-@repartition["#{t.name}"][1]+datas[k].value
         @sum=@sum_current.value
         @repartition["#{t.name}"][1]= datas[k].value
      }

      FXSlider.new(mtrix, datas[k], FXDataTarget::ID_VALUE,
      LAYOUT_CENTER_Y|LAYOUT_FILL_ROW|LAYOUT_FIX_WIDTH, :width => 100)

      FXSpinner.new(mtrix,5, datas[k], FXDataTarget::ID_VALUE,
      SPIN_CYCLIC|FRAME_SUNKEN|FRAME_THICK|LAYOUT_CENTER_Y|LAYOUT_FILL_ROW)

      FXProgressBar.new(mtrix, datas[k], FXDataTarget::ID_VALUE,
      (LAYOUT_CENTER_Y|LAYOUT_FILL_X|FRAME_SUNKEN|FRAME_THICK|
      PROGRESSBAR_PERCENTAGE|LAYOUT_FILL_COLUMN|LAYOUT_FILL_ROW))


    k+=1

  }

Thanks a lot for the time you will spend on this

EDIT: I tried to redefine a @data=FXDataTarget for each item, but this
way the messaging is all messed up...
This topic is locked and can not be replied to.