Jump to content
  • 0

Onthouden van actieve Tab op layout


ron@dds.nl

Question

Posted

Hoi allemaal,

 

Ik heb een aantal layouts met daarop een aantal tabs.

Ik wil graag dat als ik bv op layout 3 de derde tab actief heb als ik de layout verlaat, en dan weer terugkom, weer deze tab actief is.

Nu is het zo dat steeds weer de eerste tab actief is.

Ik heb al in de tab control setup gekeken, maar daar kun je alleen een vaste tab als default front tab instellen

Ook heb ik geprobeerd met Get ( ActiveLayoutObjectName ) de naam van de tab (die ik in de inspector heb ingesteld) in een variabele vast te leggen, maar de variabele blijft leeg.

Wel kan ik in een script naar de tab toegaan met Go to object (object name "tabnaam").

Ik kan de tab dus wel sturen als ik eenmaal de naam heb, maar kan de naam op een of andere manier niet 'grabben'.

 

Gaarne hulp

9 answers to this question

Recommended Posts

  • 0
Posted

Je zit al aardig in de goede richting.

 

Geef je (panel)-tab een object naam, (open "object info panel" -- dropdown-menu -- view -> object info)

klik éénmaal op de eerste panel-tab, vul een duidelijk object name in, - veld "object name" - van "object info panel".

Herhaal deze handeling voor de overige panel-tabs. Gebruik de object name van de gewenste tab in je script Go to object (tab object name).

 

 

Succes Dre

  • 0
Posted

Dre bedankt,

 

het naar een tab object gaan op basis van de objectnaam is inderdaad al gelukt.

De uitdaging is om te weten welke tab actief is geweest zodat ik daar later weer naar toe kan gaan.

Het lukt me niet om de gegeven tabnaam in een variabele te krijgen (als deze geselecteerd wordt) die ik later dan weer kan uitlezen.

  • 0
Posted

Bedenk dat je ook de "tier" waarde zult moeten weten indien je tabs in tabs gebruikt.

Je moet dus altijd de 'frontmost tab used' weten.

 

In feite werk je op twee vlakken tegelijkertijd.

 

Je bouwt een lijst van tabs die je 'bezoekt' en later heb je die lijst nodig om terug te gaan naar je 'laatste bezoek'.

 

Ook als je gewoon bent om objecten te grouperen, moet je die group ook een object naam geven.

 

Het kan dus zijn dat je tab4 bezoekt op layoutA, daarna enkele andere layouts en tabs, om uiteindelijk terug op layoutA terecht te komen.

Ook dan zou je terug op tab4 moeten terechtkomen, ook al is tab2 als frontmost opgegeven in TabControl Setup.

 

In feite is het een complexe opbouw van navigatie,

  • 0
Posted

In mijn geval zijn het geen tabs op tabs.

Alleen tabs in een layout.

Je zegt dus dat de groep van tabs ook en naam heeft dus bv. layoutname/tabgroupname/tabname

 

het gekke blijft dat ik wel de tab op basis van zijn 'objectname' actief kan maken, maar niet kan uitlezen als deze de 'focus' heeft.

 

Zou je wat specifieker kunnen zijn hoe ik de waarde van de actieve tab kan uitlezen?

  • 0
Posted (edited)

Stap 2

 

Geef de panel een scripttrigger -- "OnObjectModify"

In het (scripttrigger)-script neem je onderstaande code op in Set Variable "$$_Layout_TabObjectName"

(pas natuurlijk de code binnen GetLayoutObjectAttribute ( … ; … ) aan)

Met twee dollar tekens in de variable name ( "$$_variable_naam" ) wordt de scope van de variable global

 

// name var $$_Layout_TabObjectName
Case ( 
GetLayoutObjectAttribute ( "ly_1_tab_1"; "isFrontTabPanel" ); "ly_1_tab_1";
GetLayoutObjectAttribute ( "ly_1_tab_2"; "isFrontTabPanel" ); "ly_1_tab_2";
GetLayoutObjectAttribute ( "ly_2_tab_1"; "isFrontTabPanel" ); "ly_2_tab_1";
"Oeps"
)
// ly_1_tab_1 == (layout = ly_1,  tab = tab_1)

 

Gebruik Go to object ($$_Layout_TabObjectName) in een script, waarmee je terugkeer naar de layout met de panel

 

Dre

Edited by Guest
  • 0
Posted

Dit kan je misschien al een eindje op weg helpen.

 

http://sixfriedrice.com/wp/script-triggers-monitoring-and-restoring-tabs/

 

De methode die wij gebruiken is gebaseerd op het capteren van de objectnamen per layoutID, dus niet layoutName.

Daar maken we een lijst van, die bij de restore omgekeerd uitgelezen wordt.

 

Het hele systeem steunt op 2 custom functions en 3 scripts.

1. Het zetten van de tabs 'in geheugen'

2. Resetten van de lijst

3. Het opnieuw ophalen van de tab

 

Op die manier maakt het weinig uit op welke manier je van en naar een layout gaat.

Het triggeren is op basis van de layoutID.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...