container padri e figli

Ciao, ho un container padre che all’interno ha un controllo tabpanel che popolo con l’istruzione EmbedWithinPanel di altri container figli. Non riesco a capire come si comanda il valore del tabpanel padre (tabpanel.value) all’interno del controllo figlio per spostare il focus su gli altri container figli. Ad esempio: ho messo un bottone sul container figlio associato al tabpanel.Vaue = 0 che mi dovrebbe aprire il container figlio associato al tabpanel.Value = 1, ho provato l’istruzione Me.Parent.PanelIndex = 1 nell’evento action del bottone ma mi visualizza un pannello vuoto.

Il metodo più flessibile è scatenare e gestire eventi

Scusate, mi sono spiegato male. Ho un container che si anagr, all’interno di questo c’ un controllo tabpanel che popolo di altri container con l’istruzione EmbedWithinPanel, gli altri container sono figli e si chiamano anagr_lista, anagr_anagr, anagr_indir. Ho un bottone che si trova in anagr_lista (figlio di anagr) che dovrebbe aprire il container anagr_anagr (figlio di anagr) che si trova nel tabpanel di anagr con valore 1, quindi dovrei settare la propiet value del tabpanel di anagr a 1. Ho provato a cercare la propriet value del tabpanel scorrendo la propriet self.parent del bottone che si trova in anagr_lista (figlio di anagr) di ma non la trovo e cos non riesco a pilotare il tabpanel nel controllo anagr.

Parent un oggetto, che nel tuo caso un tabPanel per cui basta che fai il casting:

if parent isA tabPanel then tabPanel(parent).value=0 end if

In generale potresti mandare con lo stesso meccanismo un “evento” all’oggetto che contiene il tabPanel, ovvero potresti creare una interfaccia (ad esempio GestoreSezioni) con un metodo (ad esempio vaiAllaPagina) e richiamare questo con lo stesso meccanismo di isA e casting.
Questo perch altrimenti ti vincoli:
1- ad avere sempre la destinazione in quella pagina del tabpanel (e se poi cambi l’ordine?)
2- ad avere per forza un tabpanel (e se poi utilizzi un’altro modo per visualizzare?)
Invece rendendo la finestra una implementazione di questa interfaccia puoi essere libero (la TrueWindow ovvero la finestra originale) del tipo di interfaccia che richiedo? (isA) allora tramite il casting puoi andare a richiamare il metodo.
Questo ti permette:
1-Di cambiare la UI senza cambiare il codice
2-Di poter anche chiudere o spostare il pannello e nell’implementazione del metodo verificare se esiste la destinazione e quale pannello attivare.

Antonio … grazieeeeeeee. Più prezioso che l’oro.