Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: dex - 11 Ottobre 2009, 01:11:25

Titolo: indicizzare i controlli
Inserito da: dex - 11 Ottobre 2009, 01:11:25
ciao raga
sono nuovo con il gamberetto, e mi serve un vostro aiuto.

in un form ho circa 60 chekbox che devo attivare e disattivare.

con visualbasic mi bastava un semplice ciclo for

Codice: [Seleziona]
for i = 1 to 60
chekbox(i).enabled = false
next i


con gambas non riesco ad indicizzare le chek
Titolo: Re: indicizzare i controlli
Inserito da: Berserker79 - 11 Ottobre 2009, 10:19:07
Ciao, cerca nel forum che di recente è stata postata una richiesta come la tua e hanno risposto con tanto di esempio allegato.
Ciao.
Titolo: Re: indicizzare i controlli
Inserito da: dex - 12 Ottobre 2009, 00:01:40
ciao
saresti cosi gentile da postami il link?

non riesco a trovare il post ce mi hai detto
Titolo: Re: indicizzare i controlli
Inserito da: giulio - 12 Ottobre 2009, 12:15:32
DIM hControl AS Object
 
  FOR EACH hControl IN ME.Children
 
    IF Object.Type(hControl) = "CheckBox" THEN hControl.Value = TRUE
   
 
  NEXT
Titolo: Re: indicizzare i controlli
Inserito da: dex - 15 Ottobre 2009, 13:08:26
grazie giulio., ho risolto.

ora si presenta un'altro problema, devo caricare i valori delle check nelle variabili, esempio:

Codice: [Seleziona]
dim mval as boolean [60]

for i = 1 to 60

mval(i) = check.value(????)

next


non riesco a capire come assegnare l'index della check 1 alla variabile 1 ecc...
Titolo: Re: indicizzare i controlli
Inserito da: md9327 - 15 Ottobre 2009, 14:41:46
Codice: [Seleziona]

DIM hControl AS Object

DIM nIndex AS Integer

nIndex = 0
FOR EACH hControl IN ME.Children

IF Object.Type(hControl) = "CheckBox" THEN
  mval[nIndex] = hControl.Value
END IF

INC nIndex

NEXT

Titolo: Re: indicizzare i controlli
Inserito da: giulio - 15 Ottobre 2009, 18:29:58
C'è un errore nel codice di md9327.

Codice: [Seleziona]

DIM hControl AS Object

DIM nIndex AS Integer

nIndex = 0
FOR EACH hControl IN ME.Children

IF Object.Type(hControl) = "CheckBox" THEN
  mval[nIndex] = hControl.Value
  INC nIndex '<<<<<<<<<<< va qui
END IF

NEXT


nIndex va incrementato solo se il control è un checkbox.
Titolo: Re: indicizzare i controlli
Inserito da: md9327 - 15 Ottobre 2009, 21:19:30
Bravo!!!
Titolo: Re: indicizzare i controlli
Inserito da: dex - 20 Ottobre 2009, 19:47:38
giulio la tua correzione è giusta.

dato che nIndex è un contatore e giustamente per funzionare deve essere incrementato, perchè hai precisato:
nIndex va incrementato solo se il control è un checkbox.

se si trattasse di texbox non andrebbe incrementato?
Titolo: Re: indicizzare i controlli
Inserito da: Ceskho - 20 Ottobre 2009, 22:12:31
Citazione

desadex ha scritto:
giulio la tua correzione è giusta.

dato che nIndex è un contatore e giustamente per funzionare deve essere incrementato, perchè hai precisato:
nIndex va incrementato solo se il control è un checkbox.

se si trattasse di texbox non andrebbe incrementato?


Dipende da cosa devi fare...ovviamente l'esempio è indicativo...se hai bisogno di gestire più textbox allora sfrutti lo stesso codice ma con la dicitura Textbox invece di combobox