[Gambas-user] Controls on form do not respond.

Fabien Bodard gambas.fr at ...626...
Fri Jan 3 10:20:12 CET 2014


You must to be more explicit ... where is the problem ?

you are lauching the MainForm and then you call ... StatForm ?


where is the code of the widget you want to be active ? which one ?

is it a dynamiquely created widget ?

You have an incredibely too complex code ... for a Gambas one... why
there is a need to store all the label instances ? can't you use a
.Tag index ?



2014/1/3 VonZorch <VonZorch at ...626...>:
> My archivers are being balky, I couldn't send the entire project.  What
> follows is the class files for the main form and the opened form.
>
> ' Gambas class file frmMain
>
> Private Names As String[]
> Private Stats As New FrmStat[]
> Private strHtQ[2] As String
> Private strWtQ[2] As String
> Private Hx As String[]
> Private Wx As String[]
>
>
> Public Sub _new()
>   Dim Loop1 As Byte
>   Dim Loop2 As Byte
>   Dim Base As Byte = 50
>   Dim NewStat As FrmStat
>   Names =
> Split("STR,CON,DFT,AGL,SPD,INT,WILL,APR,EMP,VOI,CHA,TEK,SCI,PIO,RWA,MCA,EST,PSI,MAG")
>   For Loop1 = 0 To 18
>     If Loop1 > 16 Then Base = 0
>     NewStat = New FrmStat(Names[Loop1], Base, Loop1, TabStrip1)
>     Stats.Add(NewStat)
>     Stats[Loop1].X = 0
>     Stats[Loop1].Y = (Loop1 + 1) * 23
>     If Names[Loop1] = "INT" Then Stats[Loop1].CostX = 2
>     If Loop1 > 16 Then Stats[Loop1].ULimit = 50
>     If Loop1 = 17 Then Stats[Loop1].LLimit = -50
>   Next
>   cmbRace.Index = 1
>   strHtQ[0] = "2,172"
>   strHtQ[1] = "2,166"
>   spnSize_Change()
>  End
>
> Public Sub Form_Open()
> End
> Public Sub StatChanged(Index As Byte)
>
>
>
> End
>
> Public Sub UpdateCost()
>   Dim Cost As Integer
>   Dim Loop1 As Byte
>   For Loop1 = 0 To 16
>     Cost += Stats[Loop1].Cost
>   Next
>   lblCost.Text = Cost
>   lblPointsLeft.Text = lblPoints.Text - lblCost.Text
>   If Val(lblPointsLeft.Text) < 0 Then
>     lblPointsLeft.Foreground = Color.Red
>   Else
>     lblPointsLeft.Foreground = Color.Black
>   Endif
> End
>
> Public Sub spnSize_Change()
>   Dim Ht As Float
>   Dim S As Byte = cmbSex.Index
>   Dim HH As String
>   Hx = Split(strHtQ[S])
>   Ht = Round((spnSize.Value / Hx[0]) + Hx[1], -1)
>   vbxMetricHT.Value = Ht
>   tbxFeet.Text = Conversions.cm2Ft(Ht, 1)
> End
>
> Public Sub btnCurve_Click()
>   frmCurve.Show
> End
>
> frmCurve.Class
> ' Gambas class file
>
> Private Ht As Float[]
> Private Wt As Float[]
> Public lblHt As New Label[]
> Public lblWt As New Label[]
>
> Public Sub _new()
>   Dim Loop1 As Byte
>   Dim This As Label
>   This = New Label(Me)
>   This.X = 0
>   This.Y = 660
>   This.Width = 35
>   This.Height = 21
>   This.Text = "0"
>   This.Alignment = Align.Right
>   lblHt.Add(This, 0)
>   This = New Label(Me)
>   This.X = 0
>   This.Y = 21
>   This.Width = 35
>   This.Height = 21
>   This.Alignment = Align.Right
>   This.Text = "10"
>   lblHt.Add(This, 10)
>   This = New Label(Me)
>   This.X = 677
>   This.Y = 0
>   This.Width = 35
>   This.Height = 21
>   This.Alignment = Align.Center
>   This.Text = "10"
>   lblHt.Add(This, 10)
>   Draw.Begin(drwPlot)
>     For Loop1 = 0 To 10
>       This = New Label(Me)
>       This.X = 18 + (Loop1 * 66)
>       This.Y = 0
>       This.Width = 35
>       This.Height = 21
>       This.Text = Str(Loop1)
>       This.Alignment = Align.Center
>       If Loop1 = 10 Then This.X = 677
>       lblWt.Add(This, 0)
>       If Loop1 > 0 And Loop1 < 10 Then
>         This = New Label(Me)
>         This.X = 0
>         This.Y = 670 - (Loop1 * 66)
>         This.Width = 35
>         This.Height = 21
>         This.Alignment = Align.Right
>         This.Text = Str(Loop1)
>         lblHt.Add(This, Loop1)
>         Draw.Line(0, Loop1 * 66, 660, Loop1 * 66)
>         Draw.Line(Loop1 * 66, 0, Loop1 * 66, 660)
>       Endif
>     Next
>   Draw.End
> End
>
>
> Public Sub Form_Open()
>
> Dim Loop1 As Integer
>
>
> End
> Private Sub btnPlot_Click()
>   Dim H As Float = (Ht[Ht.Count - 1] - Ht[0]) / 10
>   Dim W As Float = (Wt[Wt.Count - 1] - Wt[0]) / 10
>   Dim Loop1 As Byte
>   For Loop1 = 0 To 10
>     lblHt[Loop1].Text = Str(Ht[0] + (H * Loop1))
>     lblWt[Loop1].Text = Str(Wt[0] + (W * Loop1))
>   Next
>
>
> End
>
> Private Sub btnSet_Click()
>   Dim H As Float
>   Dim W As Float
>   If rbtEnglish.True Then
>     H = Conversions.Ft2CM(tbxHt.Text, 1)
>     W = Conversions.Lb2Kilo(vbxWt.Value, 1)
>   Else
>     H = Val(tbxHt.Text)
>     W = vbxWt.Value
>   Endif
>   Ht.Add(H)
>   Wt.Add(W)
>   vbxCount.Value = Ht.Count
>   tbxHt.Text = ""
>   vbxWt.Value = 0
> End
>
> I have breakpoints in every Sub, nothing catches.
>
>
>
> --
> View this message in context: http://gambas.8142.n7.nabble.com/Controls-on-form-do-not-respond-tp44971p44990.html
> Sent from the gambas-user mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user



-- 
Fabien Bodard




More information about the User mailing list