Page 1 of 2

Impostare il focus su un oggetto di un folder

Posted: Thu Dec 15, 2005 8:06 am
by Marco Turco
Salve,
ho un problema nell'utilizzo dei folder.

Vedi www.softwarexp.co.uk/beta/focus_on_folder.gif

In pratica quando creo un folder che si attiva ovviamente sulla prima dialog del folder, il focus viene posizionato sul primo oggetto del folder (nell'immagine di esempio su "OK").

Vorrei invece che il focus vada su un oggetto della prima dialog del folder, in questo caso sulla combobox "tipo di inserimento" che ho definito come oStartObject.

Ho provato con oStartObject:Setfocus() all'inizializzazione del folder ma senza successo.

Qualche idea ?

Grazie in anticipo

Marco Turco

Re: Impostare il focus su un oggetto di un folder

Posted: Thu Dec 15, 2005 8:34 am
by Enrico Maria Giordano
Se prepari un esempio del problema ridotto ai minimi termini faccio qualche esperimento.

EMG

Posted: Thu Dec 15, 2005 10:05 am
by Marco Turco
Eccolo su www.softwarexp.co.uk/beta/test.zip

In pratica vorrei che il folder partisse con il focus sul primo campo della prima dialog (in questo caso la get "Nombre de Cliente").

Ho inserito un setfocus all'init della dialog ma senza esito.

Marco

Posted: Thu Dec 15, 2005 10:11 am
by Enrico Maria Giordano
Metti questo subito prima della ACTIVATE DIALOG e togli la ON INIT:

oDlg:bStart = { || oGet1:SetFocus() }

EMG

Posted: Thu Dec 15, 2005 10:35 am
by juanito
Buongiorno a tutti.
A proposito di folder, è possibile visualizzare o nascondere una pagina al verificarsi di una condizione (che non sia oFld:aEnable[n]:=.t./.f.)?

Posted: Thu Dec 15, 2005 10:42 am
by Enrico Maria Giordano
Prova con

oFld:aDialogs[ n ]:Hide()

e

oFld:aDialogs[ n ]:Show()

EMG

Posted: Thu Dec 15, 2005 10:50 am
by juanito
Ciao Enrico,
non avevo trovato nulla sull'help di fwh e credevo non fosse possibile.
Grazie

Posted: Thu Dec 15, 2005 11:17 am
by Enrico Maria Giordano
Be', l'help non può riportare tutte le combinazioni possibili. Se una DIALOG ha il metodo Hide() è ovvio che si possa utilizzare anche se questa DIALOG è contenuta in un array. Tieni presente però che non è detto che la cosa funzioni ma per altri motivi.

EMG

Posted: Thu Dec 15, 2005 12:14 pm
by Guest
Enrico,
non mi sono spiegato bene.
Io voglio che una cartella (l'ultima) venga ADD/DEL al variare della condizione, nel caso che mi hai suggerito, i controls delle due cartelle si sovrappongono.
Ecco l'esempio:
******************************************************************************
FUNCTION Giudizi() // Gestione Gudizi
******************************************************************************
.........
.........
lDef := .f.
.........
.........

DEFINE DIALOG oDlg RESOURCE "giudizio" TITLE cTit FONT oFont1 ICON oIco
REDEFINE FOLDER oFld ID 105 OF oDlg ;
PROMPT "&Giudizi","Giudi&zio","Co&mune","&Contro" ,;
"&Rinvii","&Uffici","&Annotazioni","&Definizione" ;
DIALOGS "boxdati","Giudizi","Convenuti","Attori" ,;
"boxdati","boxdati","note","sentenza"
/* Giudizi - Elenco Giudizi */
/* Giudizi - Dettagio Giudizio */
........
........
REDEFINE CHECKBOX oDef VAR lDef ID 118 OF oFld:aDialogs[2];
ON CHANGE (IIF(lDef,oFld:AddItem("&Definizione",8),;
oFld:DelItem("&Definizione",8)),oFld:Refresh())
........
........
ACTIVATE DIALOG oDlg CENTERED ON INIT IIF(!lDef,oFld:DelItem("&Definizione"),)
RETURN( nil )

in questo modo invece le cartelle vengono shiftate
Dov'è lerrore?

Posted: Thu Dec 15, 2005 12:18 pm
by Guest
l'omino con gli occhiali rappresenta un otto :? :?

Posted: Thu Dec 15, 2005 12:33 pm
by Enrico Maria Giordano
Allora prova con i metodi AddItem() e DelItem(). Se il tuo esempio fosse stato ridotto ai minimi termini e compilabile avrei potuto fare qualche esperimento ma purtroppo non lo è... :-)

EMG

Posted: Thu Dec 15, 2005 12:34 pm
by Enrico Maria Giordano
Anonymous wrote:l'omino con gli occhiali rappresenta un otto :? :?
Perché non hai utilizzato il tag code.

EMG

Posted: Thu Dec 15, 2005 2:10 pm
by juanito
I parametri che utilizzo dei metodi Additem() e Delitem() nell'esempio è almeno corretto?

Posted: Thu Dec 15, 2005 3:03 pm
by Enrico Maria Giordano
Non si legge molto bene ma sembra di no. AddItem() richiede solo una stringa mentre DelItem() non richiede parametri (cancella l'elemento attivo).

EMG

Posted: Thu Dec 15, 2005 3:33 pm
by juanito
Purtroppo non riesco a farlo girare :oops: :cry:
dove posso reperire un esempio funzionante?