set valseltype to (valwintypearray's selectedObjects()) as record
log valseltype
log valdeftypes
log item -1 of valdeftypes
log valseltype is item -1 of valdeftypes --returns 1
log valdeftypes contains {valseltype} --returns 1
log valdeftypes contains valseltype --returns 0
here’s the full log:
2011-07-04 18:36:12.395 Dialog Maker[1266:707] {
valbwinallo = 0;
valbwinfile = “.zip”;
valbwingen = System;
}
2011-07-04 18:36:12.397 Dialog Maker[1266:707] (
{
valbwinallo = 0;
valbwinfile = “.txt”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.rtf”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.rtfd”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.pages”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.xml”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.pdf”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.csv”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.html”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.doc”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.docx”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.pub”;
valbwingen = Document;
},
{
valbwinallo = 0;
valbwinfile = “.numbers”;
valbwingen = Spreadsheet;
},
{
valbwinallo = 0;
valbwinfile = “.xls”;
valbwingen = Spreadsheet;
},
{
valbwinallo = 0;
valbwinfile = “.xlsx”;
valbwingen = Spreadsheet;
},
{
valbwinallo = 0;
valbwinfile = “.key”;
valbwingen = Presentation;
},
{
valbwinallo = 0;
valbwinfile = “.keynote”;
valbwingen = Presentation;
},
{
valbwinallo = 0;
valbwinfile = “.ppt”;
valbwingen = Presentation;
},
{
valbwinallo = 0;
valbwinfile = “.pptx”;
valbwingen = Presentation;
},
{
valbwinallo = 0;
valbwinfile = “.jpg”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.jpeg”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.png”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.icns”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.gif”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.tiff”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.tif”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.bmp”;
valbwingen = Image;
},
{
valbwinallo = 0;
valbwinfile = “.aac”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.mp3”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.m4a”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.m4p”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.aiff”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.wma”;
valbwingen = Sound;
},
{
valbwinallo = 0;
valbwinfile = “.mov”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.mpeg”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.mp4”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.avi”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.m4v”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.wmv”;
valbwingen = Video;
},
{
valbwinallo = 0;
valbwinfile = “.scpt”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.scptd”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.applescript”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.h”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.m”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.c”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.pch”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.cpp”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.cs”;
valbwingen = Programming;
},
{
valbwinallo = 0;
valbwinfile = “.gz”;
valbwingen = System;
},
{
valbwinallo = 0;
valbwinfile = “.zip”;
valbwingen = System;
}
)
2011-07-04 18:36:12.398 Dialog Maker[1266:707] {
valbwinallo = 0;
valbwinfile = “.zip”;
valbwingen = System;
}
2011-07-04 18:36:12.398 Dialog Maker[1266:707] 1
2011-07-04 18:36:12.399 Dialog Maker[1266:707] 1
2011-07-04 18:36:12.399 Dialog Maker[1266:707] 0
I don’t understand why it needs the extra brackets!
Hi,
.because actually you are looking for the reference to a list (or record) element not for the contents
Consider that you have to define a list like
set myLIst to {1} & {2} & {3}
The first braces are obligatory, you could omit the other ones, AppleScript will coerce the integer values implicitly to a list item.
The syntax item x of aList dereferences the list item
You run into the same problem when you try to check for a boolean equation using the repeat with anItem in aList form. In this example the script will never say “yeah, two”
set myList to {1, 2, 3}
repeat with anItem in myList
if anItem is 2 then say "yeah, 2"
end repeat
To get the expected result you have to dereference the list item by adding contents
set myList to {1, 2, 3}
repeat with anItem in myList
if contents of anItem is 2 then say "yeah, 2"
end repeat