[Gambas-user] Parsing through all controls of a form
johnf
jfabiani at ...1109...
Wed Jan 18 23:41:53 CET 2006
On Wednesday 18 January 2006 14:36, Michael Wuest wrote:
> Hi there,
>
> in VB6 you can access all the controls of a form
> by doing
>
> for i0=0 to form1.controls.count - 1
> print form1.controls(i0).name
> next i0
>
> how can I do similar things in Gambas? I played
> around with form1.children and for..each but I get
> an error every time after the fourth or fifth
> control saying that he is referencing himself...
>
> What is the correct method.
>
> Thanks,
> bye,
> Michael.
Below is an example of how I looping thru all the controls on my form. It
should provide an idea of how to do it. BTW I got this from the list. Sorry
I can't recall who provided the info (I thank person).
John
PUBLIC SUB ClearFields(formname AS Window)
'a way to loop thru the controls
DIM hControl, tabControl AS Control
DIM iNumTabs, imynum AS Integer
DIM i AS Integer
DIM sNames AS String
DIM myVariant AS Variant
FOR EACH hControl IN formname.Children
IF Object.Class(hControl) = "TextBox" OR Object.Class(hControl) =
"ComboBox" OR Object.Class(hControl) = "TextArea" THEN
SELECT CASE Object.Class(hControl)
CASE "TextBox"
'myVariant = Object.GetProperty(hControl, "Text")
Object.SetProperty(hControl, "Text", "")
CASE "GridView"
Object.Call(tabControl, "Clear")
CASE "ComboBox"
CASE "TextArea"
Object.Call(hcontrol, "Clear")
END SELECT
ENDIF
IF Object.Class(hControl) = "TabStrip" THEN
iNumTabs = Object.GetProperty(hControl, "Count")
FOR i = 0 TO iNumTabs - 1
Object.SetProperty(hControl, "Index", i)
FOR EACH tabControl IN hControl[i].Children
SELECT CASE Object.Class(tabControl)
CASE "TextBox"
Object.SetProperty(tabControl, "Text", "")
CASE "GridView"
Object.Call(tabControl, "Clear")
CASE "TextArea"
Object.Call(tabControl, "Clear")
END SELECT
NEXT
NEXT
Object.SetProperty(hControl, "Index", 0)
ENDIF
NEXT
'editmode(FALSE)
'custno.Enabled = TRUE
END
More information about the User
mailing list