Autore Topic: indicizzare i controlli  (Letto 1842 volte)

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
indicizzare i controlli
« il: 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

Offline Berserker79

  • Grande Gambero
  • ***
  • Post: 201
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #1 il: 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.

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #2 il: 12 Ottobre 2009, 00:01:40 »
ciao
saresti cosi gentile da postami il link?

non riesco a trovare il post ce mi hai detto

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #3 il: 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

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #4 il: 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...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #5 il: 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


Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #6 il: 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.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #7 il: 15 Ottobre 2009, 21:19:30 »
Bravo!!!

Offline dex

  • Gran Maestro dei Gamberi
  • *****
  • Post: 872
    • Mostra profilo
Re: indicizzare i controlli
« Risposta #8 il: 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?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: indicizzare i controlli
« Risposta #9 il: 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