PDA

View Full Version : Help: ActiveX


specxor
07-13-2005, 11:35 PM
Hi, Guys,



I have been trying very hard to get this tab strip working, I have tried everything i can think of to get this working but to no avail... grrr...



So here's the code, which i have mostly developed form reading other scripts, as in this case i did not find the maxreference that helpful (Though as usual the answer is most likely there)... Thanks in advanced for your help!


Cheers
Dave


try(destroyDialog test)catch()

rollout test "test bed" width:312 height:704

(

local tabNames = #("Quick", "Advanced", "Cameras", "Lights", "Help")

local roll_ar = #("vrman", "advanRoll", "camRoll", "LightRoll", "helpRoll")

local rollWidth = #(312,312,312,312,312)

local rollHeight = #(704,704,704,704,704)



activeXcontrol ax "MSComctlLib.TabStrip.2" height:20

subRollout sub1 width:314 height:0 pos:[1, 312 - 2]



on test open do

(



ax.tabs.clear()

ax.multiRow = false



for x = 1 to tabNames.count do

(

newTab = ax.tabs.add()

newTab.caption = tabNames[x]

)

)

FN btCon_fn btPres =

(

if btPres == 1 then

(

sub1.width = floatWidth

sub1.height = floatHeight

test.width = floatWidth

test.height = floatHeight

for x in roll_ar do (if x != undefined do (removeSubRollout Sub1 x))

)

else

(

for x in roll_ar do (if x != undefined do (removeSubRollout Sub1 x))

sub1.width = (floatWidth + rollWidth[btPres])

sub1.height = (floatHeight + rollHeight[btPres])

test.width = (floatWidth + rollWidth[btPres])

test.height = (floatHeight + rollHeight[btPres])

addSubRollout Sub1 roll_ar[btPres]

)

)

on ax click do

(

axT = ax.selectedItem

btCon_fn axT.index

for x = 1 to tabNames.count do ax.tabs[x].highLighted = false

ax.tabs[axT.index].highLighted = true



/*

clearListener()

--Show all the stuff

showProperties ax.tabs[1]

print "--------------"

showMethods ax.tabs

print "--------------"

showEvents ax.tabs

*/

)

)

rollout vrman "Quick Settings"

(



)

rollout advanRoll "Advanced Settings"

(



)

rollout camRoll "Camera Settings"

(

)

rollout LightRoll "Light Settings" width:312 height:695

(



)



createDialog test 316 715

galagast
07-14-2005, 03:00 AM
everything looks ok, but i only noticed that you havent defined values for these:

floatWidth
floatHeight

this may cause some erros i suppose. :)

specxor
07-14-2005, 04:55 AM
I noticed that about 20mins after the post, the error i get is

Rollout Handler Exception: -- Type error: AddSubRollout requires RolloutClass, got: "vrman"

I still cant work it out, by my logic and understanding it should work!

cheers
Dave

Impus
07-14-2005, 05:18 AM
It's not complete but it's fix a couple of immediate issues.

Your problem was you were setting the rollout array to be strings and not rollouts and you were also not forward defining the rollouts before you started to use them..


try(destroyDialog test)catch()


floatWidth = 316
floatHeight = 715

--Forward defined rollouts
rollout vrman "" ( )
rollout advanRoll "" ( )
rollout camRoll "" ( )
rollout LightRoll "" ( )
rollout helpRoll "" ( )

--Rollout array with rollout objects
roll_ar = #(vrman, advanRoll, camRoll, LightRoll, helpRoll)

rollout test "test bed" width:312 height:704

(

local tabNames = #("Quick", "Advanced", "Cameras", "Lights", "Help")

local roll_ar = #(vrman, advanRoll, camRoll, LightRoll, helpRoll)

local rollWidth = #(312,312,312,312,312)

local rollHeight = #(704,704,704,704,704)



activeXcontrol ax "MSComctlLib.TabStrip.2" height:20

subRollout sub1 width:314 height:0 pos:[1, 312 - 2]



on test open do

(



ax.tabs.clear()

ax.multiRow = false



for x = 1 to tabNames.count do

(

newTab = ax.tabs.add()

newTab.caption = tabNames[x]

)

)

FN btCon_fn btPres =

(

if btPres == 1 then

(

sub1.width = floatWidth

sub1.height = floatHeight

test.width = floatWidth

test.height = floatHeight

for x in roll_ar do (if x != undefined do (removeSubRollout Sub1 x))

)

else

(

for x in roll_ar do (if x != undefined do (removeSubRollout Sub1 x))

sub1.width = (floatWidth + rollWidth[btPres])

sub1.height = (floatHeight + rollHeight[btPres])

test.width = (floatWidth + rollWidth[btPres])

test.height = (floatHeight + rollHeight[btPres])

addSubRollout Sub1 roll_ar[btPres]

)

)

on ax click do

(

axT = ax.selectedItem

btCon_fn axT.index

for x = 1 to tabNames.count do ax.tabs[x].highLighted = false

ax.tabs[axT.index].highLighted = true



/*

clearListener()

--Show all the stuff

showProperties ax.tabs[1]

print "--------------"

showMethods ax.tabs

print "--------------"

showEvents ax.tabs

*/

)

)

rollout vrman "Quick Settings"

(



)

rollout advanRoll "Advanced Settings"

(



)

rollout camRoll "Camera Settings"

(

)

rollout LightRoll "Light Settings" width:312 height:695

(



)



createDialog test floatWidth floatHeight

specxor
07-14-2005, 11:23 AM
Hey, Impus,

My script is all working now and thanx once again for you help, I cant believe i didnt realise i had defined strings.. arrrr.. anyways thanx very much help...

Cheers
Dave

CGTalk Moderation
07-14-2005, 11:23 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.