FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Hiding a TFolder page
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 06:12 PM

Dear friends, how to hide a TFolder page?

Thanks in advance.

EMG

Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 06:21 PM

I think it not possible
I think tfolder page can be enable or disable ....

Best Regards, Saludos



Falconi Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 06:28 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 06:22 PM

I think it not possible
I think tfolder page can be enable or disable ....
but each dialog can be an control ..I don't Know...

Best Regards, Saludos



Falconi Silvio
Posts: 858
Joined: Fri Oct 07, 2005 12:00 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 07:21 PM

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.

Best Regards,



Marco Turco

SOFTWARE XP LLP
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 08:01 PM
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.


Thank you, but I look forward for a better solution. :-)

EMG
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 08:53 PM

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.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 244
Joined: Fri Oct 28, 2005 06:29 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 08:56 PM

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!

Alejandro Cebolido

Buenos Aires, Argentina
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 09:14 PM
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.


This seems to work fine:

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


EMG
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 09:40 PM

Enrico,

> ADEL( oFld:aPrompts, nItem, .T. )
> ADEL( oFld:aDialogs, nItem )

I am assuming the third parameter shinks the array? If so, don't you also want to shrink aDialogs?

This function is more like a FldDeleteItem() since you can't decide to later show it again.

Regards,
James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Hiding a TFolder page
Posted: Tue Sep 09, 2008 10:42 PM
James Bott wrote:I am assuming the third parameter shinks the array?


Yes.

James Bott wrote:If so, don't you also want to shrink aDialogs?


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:This function is more like a FldDeleteItem() since you can't decide to later show it again.


I haven't tried but it should be possible to show it again simply resetting aPrompts and aDialogs to their original values.

EMG

Continue the discussion