impossible to empty tabstops on some fields

LiveCode is the premier environment for creating multi-platform solutions for all major operating systems - Windows, Mac OS X, Linux, the Web, Server environments and Mobile platforms. Brand new to LiveCode? Welcome!

Moderators: FourthWorld, heatherlaine, Klaus, kevinmiller, robinmiller

Post Reply
billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

impossible to empty tabstops on some fields

Post by billworld » Mon Nov 10, 2008 7:21 pm

Have any of you run into a situation where regardless of what you did to remove tabstops from a field, they "magically" revert to the default of 75?

Is this possibly due to some fields being corrupt?

For details, along with a sample stack demonstrating the problem, please visit:

http://www.billdoerrfeld.com/RunRev/Bug ... stops.html

Mark
Livecode Opensource Backer
Livecode Opensource Backer
Posts: 5150
Joined: Thu Feb 23, 2006 9:24 pm
Contact:

Post by Mark » Mon Nov 10, 2008 7:35 pm

Hi Bill,

The cRevTable["cellxspacing"] of your field is 75. This seems to override that tabstops property. To change table objects properties, you need to use the property inspector or the cRevTable property set. Better might be to avoid using Revolution table objects altogether and create your own.

Best,

Mark
The biggest LiveCode group on Facebook: https://www.facebook.com/groups/livecode.developers
The book "Programming LiveCode for the Real Beginner"! Get it here! http://tinyurl.com/book-livecode

billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

Post by billworld » Mon Nov 10, 2008 8:35 pm

Searching both the Dictionary and the User Guide for both "cRevTable" and "cellxspacing" yields no results. What is this undocumented property (or where is it documented)?

I wasn't aware that I was using revolution table objects and I'm not clear on how to create my own. In the PI, all of the fields in question do NOT have the "Table Object" property selected.

However, could it be that one of them WAS a table object at some point and cloning them somehow carried forward this property even though none have the "Table Object" property selected? Confusing indeed!

Anyway, I'm still not clear on how to rectify the situation. What am I supposed to do? What command gets sent to the Message Box?
Mark wrote:Hi Bill,

The cRevTable["cellxspacing"] of your field is 75. This seems to override that tabstops property. To change table objects properties, you need to use the property inspector or the cRevTable property set. Better might be to avoid using Revolution table objects altogether and create your own.

Best,

Mark

Mark
Livecode Opensource Backer
Livecode Opensource Backer
Posts: 5150
Joined: Thu Feb 23, 2006 9:24 pm
Contact:

Post by Mark » Mon Nov 10, 2008 9:01 pm

Hello Bill,

You can turn on Revolution UI Elements in Lists in the View menu. This will reveal the property set cRevTable in the property inspector and will let you delete it. This should be sufficient to get control over the tabstops again.

Best,

Mark
The biggest LiveCode group on Facebook: https://www.facebook.com/groups/livecode.developers
The book "Programming LiveCode for the Real Beginner"! Get it here! http://tinyurl.com/book-livecode

billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

Post by billworld » Mon Nov 10, 2008 9:26 pm

Where in the PI? I've enabled Rev. UI Elements and closely examined each panel in the Prop. Insp. and don't see a cRevTable property. (I've also relaunched the app. to see if that makes a diff. to no avail.)
Mark wrote:Hello Bill,

You can turn on Revolution UI Elements in Lists in the View menu. This will reveal the property set cRevTable in the property inspector and will let you delete it. This should be sufficient to get control over the tabstops again.

Best,

Mark

BvG
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 1239
Joined: Sat Apr 08, 2006 1:10 pm
Contact:

Post by BvG » Mon Nov 10, 2008 10:50 pm

it's a custom property, within a property set. It's put into fields when they are set to be "table" field. The current rev table field is just a bunch of custom scripts and cprops, together with automatically on the fly object generation. Unfortunately it's causing various problems in various situations.


My tip: If a field ever was a table field, then delete it, instead of setting table in the property inspector to false.
Various teststacks and stuff:
http://bjoernke.com

Chat with other RunRev developers:
chat.freenode.net:6666 #livecode

Mark
Livecode Opensource Backer
Livecode Opensource Backer
Posts: 5150
Joined: Thu Feb 23, 2006 9:24 pm
Contact:

Post by Mark » Mon Nov 10, 2008 10:55 pm

Bill,

You'll find it in the custom properties pane of the properties inspector.

If your field doesn't contains any script or data, deleting is may indeed be the best option.

Best,

Mark
The biggest LiveCode group on Facebook: https://www.facebook.com/groups/livecode.developers
The book "Programming LiveCode for the Real Beginner"! Get it here! http://tinyurl.com/book-livecode

billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

Post by billworld » Mon Nov 10, 2008 11:02 pm

Thanks for pointing me to Custom Properties. I finally found that, located cellxspacing and deleted its default value of 75. HOWEVER, that doesn't work. Deleting or re-setting both tabstops AND cellxspacing to 0 or empty has no effect. The value of 75 for tabstops still pops back. Very frustrating!

I really don't want to have to remove and recreate all of the fields (dozens of them) across multiple cards I laid out this weekend...

Is there no programmatic way to tell this thing to stop reverting back to 75?

:(

BvG wrote:it's a custom property, within a property set. It's put into fields when they are set to be "table" field. The current rev table field is just a bunch of custom scripts and cprops, together with automatically on the fly object generation. Unfortunately it's causing various problems in various situations.


My tip: If a field ever was a table field, then delete it, instead of setting table in the property inspector to false.
:cry: :cry: :cry: :cry:

BvG
VIP Livecode Opensource Backer
VIP Livecode Opensource Backer
Posts: 1239
Joined: Sat Apr 08, 2006 1:10 pm
Contact:

Post by BvG » Mon Nov 10, 2008 11:15 pm

Sure you could write a script which deletes the customproperty itself, or do it by hand. Maybe the existence of said property will force Rev to reset it to 75?

There's a little trashcan icon on the cprops pane of the property inspector, if you want to do it manually.

Otherwise (adjust as necessary, untested):

Attention: If you use custom property sets in your fields, then this code will delete them!

Code: Select all

on mouseUp
  repeat with x = 1 to the number of cards
    repeat with y = 1 to the number of fields of card x
      set the custompropertySets of field y of card x to ""
    end repeat
  end repeat
end mouseUp
Edit: and it'll also destroy all geometry manager settings...
Various teststacks and stuff:
http://bjoernke.com

Chat with other RunRev developers:
chat.freenode.net:6666 #livecode

billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

Post by billworld » Tue Nov 11, 2008 3:46 am

Excellent! While I haven't run the script yet to apply the change to ALL fields (need to do that on a back up), I manually made the change on select fields and indeed by deleting the blasted custom properties one can finally get rid of the tabstops! Very odd that the existence of the custom property would prevent the tabstops from being removed...

Thanks much for the help.

Best,

Bill
BvG wrote:Sure you could write a script which deletes the customproperty itself, or do it by hand. Maybe the existence of said property will force Rev to reset it to 75?

billworld
Posts: 188
Joined: Sat Oct 25, 2008 12:32 am

Post by billworld » Tue Nov 11, 2008 4:56 pm

I just ran this script and it nicely got rid of all the blasted custom properties that were preventing tabstops from being removed. Thanks again for the assistance.
BvG wrote:

Code: Select all

on mouseUp
  repeat with x = 1 to the number of cards
    repeat with y = 1 to the number of fields of card x
      set the custompropertySets of field y of card x to ""
    end repeat
  end repeat
end mouseUp
...

Post Reply