Newsgroup: it.comp.lang.vo-clipper
Titolo: Help: Cambiare le proprietà dei controlli di un TabControl

Ciao a tutti,
nella mia applicazione ho creato una finestra in cui oltre ad alcune
SLE è presente un Tab Control formato
da alcune pagine con all'interno di ognuna molte SLE.
Ho settato tutte le SLE con readonly a TRUE.
Tramite un pulsante voglio cambiare la propietà readonly a FALSE, il
problema è che mi vengono cambiati solo i controlli della finestra
principale che contiene il tab, tutti i controlli del tab rimangono
read only.
Nei vari tab ho settato Export controls=Yes.
Ecco il codice che ho utilizzato:
FOR  w1 := 1 TO  ALen(SELF:aControls)
	  	     oControl := aControls[w1]
  		     IF ClassName(oControl) == #SINGLELINEEDIT
                 oControl:readonly:=FALSE
             ENDIF
 NEXT
Ho anche provato a iterare su ogni tab pages con un codice analogo ma
non funziona,in questo caso ho l'errore: No exported Variables
FOR  w1 := 1 TO  ALen(self:otppage1:aControls)
	  	     oControl := aControls[w1]
  		     IF ClassName(oControl) == #SINGLELINEEDIT
                 oControl:readonly:=FALSE
             ENDIF
NEXT.
Spero in un vostro aiuto!
Grazie

Caio,
prima di tutto puoi farti un metodo per ogni finestra che ti abilita le tue 
sle, mettiamo che lo chiami abilitasle.
Dalla finestra principale puoi fare una cosa del genere:
IF !Send(oTpTabFatture, #AbilitaSle) .or. !Send(oTpTabListaProdotti, 
#AbilitaSle) ...
Ciao
Massimo Friargiu
Area Medica Soft
"NewUserVO"  ha scritto nel messaggio 
news:1173967783.1...@o5g2000hsb.googlegroups.com...


Dimenticavo, sempre dalla finestra principale devi esportare tutti i 
controlli.
"Massimo"  ha scritto nel messaggio 
news:45f9722c$0$20803$5fc...@news.tiscali.it...


Ciao. Io faccio così:
per ogni finestra del TabControl, creo il metodo AgiornaParametri(lFlag) che 
chiamo dai bottoni Modifica e Salva.
Esempio:
Method Modifica() class FinestraPrincipale
self:oTPPrimaFinestraTabControl:AggiornaParametri(true)
self:oTPSecondaFinestraTabControl:AggiornaParametri(true)
self:oTPTerzaFinestraTabControl:AggiornaParametri(true)
return nil
Method Registra() class FinestraPrincipale
self:oTPPrimaFinestraTabControl:AggiornaParametri(false)
self:oTPSecondaFinestraTabControl:AggiornaParametri(false)
self:oTPTerzaFinestraTabControl:AggiornaParametri(false)
return nil
Method AggiornaParametri(lFlag) class PrimaFinestra
LOCAL oBrush AS Brush
IF lFlag
  oBrush := Brush{ color{ 165,208,157 } }
ELSE
  oBrush := Brush{ color{ 255,255,226 } }
ENDIF
SELF:oDCSLE1:ReadOnly := ! lFlag
self:oDCSL1:SetStyle(WS_TABSTOP,lFlag)
SELF:oDCSLE1:BackGround := oBrush
return nil
A me funziona che è una meraviglia. Naturalmente con molte SLE puoi usare il 
ciclo For sui controlli.
Method AggiornaParametri(lFlag) class PrimaFinestra
LOCAL oBrush AS Brush
IF lFlag
  oBrush := Brush{ color{ 165,208,157 } }
ELSE
  oBrush := Brush{ color{ 255,255,226 } }
ENDIF
FOR  w1 := 1 TO  ALen(SELF:aControls)
  oControl := aControls[w1]
  IF IsInstanceOf(oControl,#SINGLELINEEDIT)
    oControl:readonly:= ! lFlag
    oControl:SetStyle(WS_TABSTOP,lFlag)
    oControl:BackGraund:= oBrush
  ENDIF
NEXT
return nil
Enzo.
--------------------------------------------------------------------------------
La mia Cartella di Posta in Arrivo è protetta con SPAMfighter
8070 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter!