Hiding a TFolder page
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Hiding a TFolder page
Dear friends, how to hide a TFolder page?
Thanks in advance.
EMG
Thanks in advance.
EMG
- Marco Turco
- Posts: 858
- Joined: Fri Oct 07, 2005 12:00 pm
- Location: London
- Contact:
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Thank you, but I look forward for a better solution.Marco Turco wrote:Hello Enrico,
I use this turn-around to do it.
Imagine to have a folder oFld with 3 pages: "Folder1","folder2","folder3"
then you can "hide" the folder2 at runtime with:
oFld:SetPrompt("Folder1","","Folder3")
oFld:aEnable[2]:=.f.
EMG
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- TecniSoftware
- Posts: 213
- Joined: Fri Oct 28, 2005 6:29 pm
- Location: Quilmes, Buenos Aires, Argentina
I need to create or not, some dialogs depending the rights accesss.
I do this with TPages, but is very similar code:
Add -> DEFAULT aDialogs := {} // In method Redefine
And at dialog creation:
n := 0
DEFINE DIALOG oDlg;
RESOURCE "FICHA";
TITLE "Title"
REDEFINE PAGES oPages;
ID 999;
OF oDlg
If ChkRights() // Check security access
n++
aAdd(aItems, "Datos personales" ) // manually add the dialog
aAdd(oPages:aDialogs, {})
DEFINE DIALOG oPages:aDialogs[n];
RESOURCE "FICHA_01_DATOS01";
OF oPages
REDEFINE GET oGetLegajo;
VAR oDbf:Legajo;
ID 1;
OF oPages:aDialogs[n]
EndIf
This work fine for me.
Best regards!
I do this with TPages, but is very similar code:
Add -> DEFAULT aDialogs := {} // In method Redefine
And at dialog creation:
n := 0
DEFINE DIALOG oDlg;
RESOURCE "FICHA";
TITLE "Title"
REDEFINE PAGES oPages;
ID 999;
OF oDlg
If ChkRights() // Check security access
n++
aAdd(aItems, "Datos personales" ) // manually add the dialog
aAdd(oPages:aDialogs, {})
DEFINE DIALOG oPages:aDialogs[n];
RESOURCE "FICHA_01_DATOS01";
OF oPages
REDEFINE GET oGetLegajo;
VAR oDbf:Legajo;
ID 1;
OF oPages:aDialogs[n]
EndIf
This work fine for me.
Best regards!
Alejandro Cebolido
Buenos Aires, Argentina
Buenos Aires, Argentina
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
This seems to work fine:Antonio Linares wrote:Enrico,
We need to implement a new method for it, as the dialog for the folder page to hide should be removed from oFld:aDialogs.
We can't simply hide it, as the folder uses the hide and show to select them.
Also, the prompts have to be modified.
Code: Select all
FUNCTION FLDHIDEITEM( oFld, nItem )
LOCAL oDlg := oFld:aDialogs[ nItem ]
ADEL( oFld:aPrompts, nItem, .T. )
ADEL( oFld:aDialogs, nItem )
oFld:aDialogs[ LEN( oFld:aDialogs ) ] = oDlg
RETURN NIL
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
- Enrico Maria Giordano
- Posts: 7355
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Yes.James Bott wrote:I am assuming the third parameter shinks the array?
No, as the dialog is already active when I decided to hide it. Leaving it working and no visible we avoid a series of problems.James Bott wrote:If so, don't you also want to shrink aDialogs?
I haven't tried but it should be possible to show it again simply resetting aPrompts and aDialogs to their original values.James Bott wrote:This function is more like a FldDeleteItem() since you can't decide to later show it again.
EMG