Mexican Spotted Owl, stretching...

Jenness Enterprises
ArcView Extensions
GIS Consultation
Unit Converter
Search

 

Basic Dialog Scripts

“OPEN” script:

' jennessent.SampleDialogOpen

AVUpperLeft = av.ReturnOrigin

AVCenter = avUpperLeft + (av.ReturnExtent / (2@2))

halfDialogWidthHeight = Self.ReturnExtent.ReturnSize / (2@2)

MovePoint = AVCenter - halfDialogWidthHeight

Self.MoveTo(MovePoint.GetX, MovePoint.GetY)

theDialog = self

cmdOK = theDialog.FindByName("cmdOK")

cmdCancel = theDialog.FindByName("cmdCancel")

“ACTIVATE” script:

' jennessent.SampleDialogActivate

theDialog = self

cmdOK = theDialog.FindByName("cmdOK")

cmdCancel = theDialog.FindByName("cmdCancel")

“CLOSE” script:

' jennessent.SampleDialogClose

self.SetObjectTag(nil)

self.FindByName("cmdOK").SetObjectTag(nil)

self.FindByName("cmdCancel").SetObjectTag(nil)

“OK” script:

' jennessent.SampleDialogOK

self.GetDialog.Close

“CANCEL” script:

' jennessent.SampleDialogCancel

self.GetDialog.SetModalResult(nil)

self.GetDialog.Close

MultiChoice Scripts:

“MultiChoice” script:

' Jennessent.SampleMultiChoice

if ((self.Count) <> 4) then

  msgBox.Warning("Wrong number of parameters for MultiChoice Message Box; expected 4.",

     "Avenue Runtime Error:")

  return nil

end

theMessage = self.Get(0)

theTitle = self.Get(1)

theListOfLabels = self.Get(2)

theListOfLists = self.Get(3)

if (theMessage.Count > 55) then

  theWords = theMessage.AsList

  theCounter = 0

  theTempMessage = ""

  for each aWord in theWords

    theCounter = theCounter+aWord.Count+1

    if (theCounter > 55) then

      theTempMessage = theTempMessage+NL+aWord

      theCounter = 0

    else

      theTempMessage = theTempMessage++aWord

    end

  end

  theMessage = theTempMessage.Trim

end

if (theListOfLabels.Count <> theListOfLists.Count) then

  msgBox.Info("Number of labels is not equal to number of lists!  Bailing out...", "Problem:")

  return nil

end

' FOLLOWING JUST BECAUSE DIALOG BECOMES TOO BIG FOR MANY SCREEN RESOLUTIONS

if (theListOfLabels.Count > 20) then

  msgBox.Info("Too many lists!  Please limit number of lists to <= 15...", "Problem:")

  return nil

end

AllStrings = True

for each aLabel in theListOfLabels

  if (aLabel.Is(String).Not) then

    AllStrings = False

    break

  end

end

if (AllStrings.Not) then

  msgBox.Info("Labels (parameter 2) must all be strings!  Bailing out...", "Problem:")

  return nil

end

' IDENTIFY LOCATIONS FOR DIALOG COMPONENTS

theBasicHeight = 55

theAddedHeight = theListOfLabels.Count*30

FinalHeight = theBasicHeight+theAddedHeight

theWidth = 428

theSize = theWidth@FinalHeight

theRect = Rect.Make(0@0, theSize)

AVUpperLeft = av.ReturnOrigin

AVCenter = avUpperLeft + (av.ReturnExtent / (2@2))

halfDialogWidthHeight = theSize / (2@2)

MovePoint = AVCenter - halfDialogWidthHeight

theRect.SetOrigin(MovePoint.GetX@MovePoint.GetY)

' MAKE DIALOG

theDialog = Dialog.MakeSized (True, True, True, True, theRect)

theDialog.SetModal(True)

theDialog.SetTitle(theTitle)

theControlPanel = theDialog.GetControlPanel

' ADD COMBO BOXES

theYPos = 25

theCounter = 0

theListOfCbxNames = {}

for each anIndex in 0..(theListOfLabels.Count-1)

  theComboFasteners = {#CONTROL_FASTENER_TOP, #CONTROL_FASTENER_LEFT, #CONTROL_FASTENER_RIGHT,

      #CONTROL_FASTENER_HEIGHT}

  theCounter = theCounter+1

  theYPos = theYPos+30

  theComboBox = ComboBox.Make

  theComboBox.SetName("AComboBox"+anIndex.AsString)

  theListOfCbxNames.Add(theComboBox.GetName)

  theComboBox.SetLabel(theListOfLabels.Get(anIndex))

  theControlPanel.Add(theComboBox, Rect.Make(7@theYPos, 321@114))

  theComboBox.SetFasteners(theComboFasteners)

  theComboBox.DefineFromList(theListOfLists.Get(anIndex))

end

theButtonFasteners = {#CONTROL_FASTENER_TOP, #CONTROL_FASTENER_WIDTH, #CONTROL_FASTENER_RIGHT,

      #CONTROL_FASTENER_HEIGHT}

' ADD OK BUTTON

theOKScriptString = "theList = {}"+NL

for each aCbxName in theListOfCbxNames

  theOKScriptString = theOKScriptString+

      "theList.Add(self.GetDialog.FindByName("+aCbxName.Quote+").GetCurrentValue)"+NL

end

theOKScriptString = theOKScriptString+"self.GetDialog.SetModalResult(theList)"+NL+"self.GetDialog.Close"

theOKScriptName = "temp_cbx_ok"

theOKBaseName = "temp_cbx_ok"

theOKCounter = 0

while(av.FindDoc(theOKScriptName) <> nil)

  theOKCounter = theOKCounter+1

  theOKScriptName = theOKBaseName+theOKCounter.AsString

end

theOKSEd = SEd.MakeFromSource(theOKScriptString, theOKScriptName)

theOKButton = LabelButton.Make

theOKButton.SetName("cmdOK")

theOKButton.SetLabel("OK")

theControlPanel.Add(theOKButton, Rect.Make(344@14, 71@24))

theOKButton.SetFasteners(theButtonFasteners)

theOKButton.SetClick(theOKScriptName)

' ADD CANCEL BUTTON

theCancelScriptString = "self.GetDialog.SetModalResult(nil)"+NL+"self.GetDialog.Close"

theCancelScriptName = "temp_cbx_Cancel"

theCancelBaseName = "temp_cbx_Cancel"

theCancelCounter = 0

while(av.FindDoc(theCancelScriptName) <> nil)

  theCancelCounter = theCancelCounter+1

  theCancelScriptName = theCancelBaseName+theCancelCounter.AsString

end

theCancelSEd = SEd.MakeFromSource(theCancelScriptString, theCancelScriptName)

theCancelSEd.Compile

theCancelButton = LabelButton.Make

theCancelButton.SetName("cmdCancel")

theCancelButton.SetLabel("Cancel")

theCancelButton.SetClick(theCancelScriptName)

theControlPanel.Add(theCancelButton, Rect.Make(344@47, 71@24))

theCancelButton.SetFasteners(theButtonFasteners)

' ADD MESSAGE

theMessageLabel = TextLabel.Make

theMessageLabel.SetName("lblMessage")

theMessageLabel.SetLabel(theMessage)

theMessageLabel.SetFasteners({#CONTROL_FASTENER_TOP, #CONTROL_FASTENER_WIDTH, #CONTROL_FASTENER_LEFT,

      #CONTROL_FASTENER_HEIGHT})

theControlPanel.Add(theMessageLabel, Rect.Make(5@5, 328@45))

theOutput = theDialog.Open

theDialog = nil

av.GetProject.RemoveDoc(theCancelSEd)

av.GetProject.RemoveDoc(theOKSEd)

return theOutput

“MultiChoice Sample Code” script:

' Jennessent.SampleMultiChoice_sample_code

' PASTE THE FOLLOWING LINE INTO THE TOP OF YOUR SCRIPT SOMEWHERE BEFORE THE

' MULTI-CHOICE BOX GETS CALLED:

MsgMultiChoice = av.FindScript("Jennessent.SampleMultiChoice")

' THIS MESSAGE BOX REQUIRES 4 PARAMETERS:

' 0) THE MESSAGE TO SHOW ABOVE THE DROP-DOWN BOXES:  MUST BE A STRING

' 1) THE DIALOG TITLE:                               MUST BE A STRING

' 2) A LIST OF LABELS FOR EACH DROP-DOWN BOX:        MUST CONTAIN ALL STRING LABELS

' 3) A LIST OF LISTS, TO FILL THE DROP-DOWN BOXES:   THESE LISTS CAN CONTAIN ANY OBJECTS

' USE THE FOLLOWING LINE TO OPEN A MULTI-CHOICE BOX AND RETURN A LIST OF SELECTED ITEMS:

' theChoices = MsgMultiChoice.DoIt({theMessage, theTitle, theListOfLabels, theListOfLists})

' FOR EXAMPLE, THE FOLLOWING CODE WILL GENERATE A MULTI-CHOICE MESSAGE BOX CONTAINING 6 DROP-DOWN LISTS

' AND RETURN THE 6 SELECTED VALUES IN A SINGLE LIST.  IT WILL THEN SHOW YOU A LIST OF THE SELECTED VALUES.

theMessage = "This is a sample message:"

theTitle = "This is a sample MultiChoice Title:"

theListOfLabels = {"Arizona", "New Mexico", "California", "Utah", "Colorado", "Nevada"}

theAZList = {5, 10, 15, 20, 25, 30, 35}

theNewMexicoList = theAZList.Clone

theCaliforniaList = theAZList.Clone

theUtahList = theAZList.Clone

theColoradoList = theAZList.Clone

theNevadaList = theAZList.Clone

theListOfLists = {theAZList, theNewMexicoList, theCaliforniaList, theUtahList,

    theColoradoList, theNevadaList}

' GET CHOICES

theChoices = MsgMultiChoice.DoIt({theMessage, theTitle, theListOfLabels, theListOfLists})

if (theChoices = nil) then return nil end

' MAKE REPORT OF CHOICES

theReport = ""

for each anIndex in 0..(theListOfLabels.Count-1)

  theReport = theReport+theListOfLabels.Get(anIndex)+": Choice = "+theChoices.Get(anIndex).AsString+NL

end

msgBox.Report(theReport, "Report of Choices:")

Progress Meter Scripts

“Open” script:

' Jennessent.SampleProgressMeter_Open

theProject = av.GetProject

icnProgressLine = self.FindByName("icnProgressLine")

panelProgressLine = self.FindByName("panelProgressLine")

lblTimeLeft = self.FindByName("lblTimeLeft")

lblCurrentTime = self.FindByName("lblCurrentTime")

lblBeginTime = self.FindByName("lblBeginTime")

lblIndex = self.FindByName("lblIndex")

lblPercentDone = self.FindByName("lblPercentDone")

lblRecordNumber = self.FindByName("lblRecordNumber")

AVUpperLeft = av.ReturnOrigin

AVCenter = avUpperLeft + (av.ReturnExtent / (2@2))

aDialog =  self

halfDialogWidthHeight = aDialog.ReturnExtent.ReturnSize / (2@2)

MovePoint = AVCenter - halfDialogWidthHeight

aDialog.MoveTo(MovePoint.GetX, MovePoint.GetY)

lblCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)

lblTimeLeft.SetLabel ("Estimated time remaining: ---:---:---")

lblPercentDone.SetLabel ("(00.0%)")

lblBeginTime.SetLabel("---:---")

lblRecordNumber.SetLabel("-----")

lblIndex.SetLabel("-----")

self.SetTitle("Current Status...")

icnProgressLine.ResizeTo(0,13)              ' START GREEN PROGRESS BAR AT 0 PIXELS WIDE

“EstTimeLeft” script:

' Jennessent.SampleProgressMeter_EstTimeLeft

' ESTIMATED TIME LEFT CODE

BeginTime = self.Get(0)

theRecordNumber = self.Get(1)

theRecordCount = self.Get(2)

theProgressDialog = self.Get(3)

thePDTimeLeft = self.Get(4)

thePDPercentDone = self.Get(5)

thePDProgressBar = self.Get(6)

thePDCurrentTime = self.Get(7)

thePDDescription = self.Get(8)

thePDCurrentStep = self.Get(9)

theCurrentDescription = self.Get(10)

thePDDescription.SetLabel(theCurrentDescription)

thePDCurrentStep.SetLabel("Working on Step "+theRecordNumber.AsString+" of "+theRecordCount.AsString+"...")

thePercentDone = (theRecordNumber/theRecordCount)*100

thePDProgressBar.ResizeTo((thePercentDone*2.68), 10)  ' RESIZES PROGRESS BAR TO FULL SIZE OF 268 PIXELS

thePercentDone.SetFormat ("dd.d")

thePDPercentDone.SetLabel ("("+thePercentDone.AsString+"%)")

thePDCurrentTime.SetLabel(Date.Now.SetFormat("hhh:m:s").AsString)

theDuration = (Date.Now - BeginTime).AsSeconds

PredictedDuration = (theDuration * theRecordCount)/(theRecordNumber+1)

EstTimeLeft = (PredictedDuration-theDuration)+1

EstHoursLeft = (EstTimeLeft/3600).Truncate

EstMinutesLeft = ((EstTimeLeft - (EstHoursLeft*3600))/60).Truncate

EstSecondsLeft = (EstTimeLeft - (EstHoursLeft*3600) - (EstMinutesLeft*60)).Truncate

EstHoursStr = EstHoursLeft.AsString

If (EstMinutesLeft >= 10) then

  EstMinutesStr = EstMinutesLeft.AsString

else

  EstMinutesStr = "0"+EstMinutesLeft.AsString

end

If (EstSecondsLeft >= 10) then

  EstSecondsStr = EstSecondsLeft.AsString

else

  EstSecondsStr = "0"+EstSecondsLeft.AsString

end

EstTimeLeftStr = EstHoursStr +":"+EstMinutesStr+":"+EstSecondsStr

thePDTimeLeft.SetLabel ("Estimated time remaining:  "+EstTimeLeftStr)

theProgressDialog.Activate

return nil

“Sample Code” script:

' Jennessent.SampleProgressMeter_SampleCode

' THE PROGRESS METER CONTAINS 7 CONTROLS THAT YOU CAN MODIFY AS YOUR SCRIPT RUNS:

'    thePDBeginTime:  A TEXT LABEL INTENDED TO DISPLAY THE TIME THE SCRIPT STARTED

'  thePDCurrentTime:  A TEXT LABEL INTENDED TO DISPLAY THE CURRENT TIME

' thePDRecordNumber:  A TEXT LABEL INTENDED TO DISPLAY THE CURRENT STEP NUMBER, PLUS

'                     THE TOTAL NUMBER OF STEPS EXPECTED IN THE ANALYSIS

'        thePDIndex:  A TEXT LABEL INTENDED TO DISPLAY A BRIEF DESCRIPTION OF THE CURRENT TASK

'     thePDTimeLeft:  A TEXT LABEL INTENDED TO DISPLAY THE ESTIMATED TIME REMAINING

'  thePDPercentDone:  A TEXT LABEL INTENDED TO DISPLAY NUMERICALLY THE PERCENTAGE DONE

'  thePDProgressBar:  AN ICON INTENDED TO DISPLAY GRAPHICALLY THE AMOUNT DONE

' PASTE THE FOLLOWING CODE INTO THE TOP OF YOUR SCRIPT SOMEWHERE TO IDENTIFY DIALOG CONTROLS

' AND SCRIPTS AND PRESET DIALOG COMPONENTS.

' PROGRESS METER STUFF -----------------------------------------------

UpdateProgress = av.FindScript("Jennessent.SampleProgressMeter_EstTimeLeft")

theProgressDialog = av.FindDialog ("Jennessent.SampleProgressMeter")

thePDBeginTime = theProgressDialog.FindByName("lblBeginTime")

thePDCurrentTime = theProgressDialog.FindByName ("lblCurrentTime")

thePDCurrentStep = theProgressDialog.FindByName("lblRecordNumber")

thePDDescription = theProgressDialog.FindByName("lblIndex")

thePDTimeLeft = theProgressDialog.FindByName("lblTimeLeft")

thePDPercentDone = theProgressDialog.FindByName("lblPercentDone")

thePDProgressBar = theProgressDialog.FindByName("icnProgressLine")

thePDCurrentStep.SetLabel ("Current Record Number or Step...")

thePDPercentDone.SetLabel ("0%)")

thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)

theIndexLabel = "Description of Current Task..."

thePDDescription.SetLabel ("Preparing Data...")

thePDTimeLeft.SetLabel ("Estimated time remaining: ---:---:---")

thePDProgressBar.ResizeTo(0,13)              ' START GREEN PROGRESS BAR AT 0 PIXELS WIDE

' END PROGRESS METER STUFF -------------------------------------------

' PASTE THE FOLLOWING CODE IN AT THE POINT YOU WANT THE PROGRESS DIALOG TO OPEN AND START WORKING:

theProgressDialog.Open

theProgressDialog.Activate

BeginTime = Date.Now.SetFormat("MMMM d, h:m:s AMPM")

thePDBeginTime.SetLabel("Began Job:  "+BeginTime.AsString)

thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)

' AT ANY POINT YOU CAN SET ANY OF THE TEXT LABELS BY THE FOLLOWING CODE:

' theTextLabelName.SetLabel("your label")

' TO UPDATE ALL PORTIONS OF THE PROGRESS METER INCLUDING THE ESTIMATED TIME LEFT, YOU NEED TO

' IDENTIFY THE FOLLOWING VARIABLES:

'  theStepNumber = THE NUMBER OF THE CURRENT STEP OR CALCULATION.  FOR EXAMPLE, IF YOU WERE ON THE

'                  4TH OF 10 CALCULATIONS, THIS NUMBER WOULD BE 4.

'   theStepCount = THE TOTAL NUMBER OF CALCULATIONS.  FOR EXAMPLE, IF YOU WERE ON THE 4TH OF 10

'                  CALCULATIONS, THIS NUMBER WOULD BE 10.

' theDescription = A BRIEF MESSAGE DESCRIBING THE CURRENT CALCULATION.

' THEN PASTE THE FOLLOWING CODE TO UPDATE THE PROGRESS METER.  MOST OF THESE LIST ITEMS HAVE

' BEEN IDENTIFIED AT THE BEGINNING OF THE SCRIPT.  MAKE SURE TO REMOVE COMMENT TAGS

' UpdateProgress.DoIt({BeginTime, theStepNumber, theStepCount, theProgressDialog,

'       thePDTimeLeft, thePDPercentDone, thePDProgressBar, thePDCurrentTime,

'       thePDDescription, thePDCurrentStep, theDescription})

' FOR EXAMPLE:  ASSUMING YOU HAVE ALREADY PASTED THE INTRODUCTORY CODE ABOVE, THE FOLLOWING SCRIPTS

' ILLUSTRATE HOW THE PROGRESS DIALOG WORKS:

' THIS SCRIPT UPDATES THE PROGRESS DIALOG AT EVERY STEP

theProgressDialog.Open

theProgressDialog.Activate

BeginTime = Date.Now.SetFormat("MMMM d, h:m:s AMPM")

thePDBeginTime.SetLabel("Began Job:  "+BeginTime.AsString)

thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)

theTotalCount = 2000

theDescription = "Counting to 2,000"

for each aNumber in 0..theTotalCount

  UpdateProgress.DoIt({BeginTime, aNumber, theTotalCount, theProgressDialog,

        thePDTimeLeft, thePDPercentDone, thePDProgressBar, thePDCurrentTime,

        thePDDescription, thePDCurrentStep, theDescription})

end

theProgressDialog.Close

' THIS SCRIPT UPDATES THE PROGRESS DIALOG EVERY SECOND

theProgressDialog.Open

theProgressDialog.Activate

BeginTime = Date.Now.SetFormat("MMMM d, h:m:s AMPM")

thePDBeginTime.SetLabel("Began Job:  "+BeginTime.AsString)

thePDCurrentTime.SetLabel(date.now.setFormat("h:m:s AMPM").AsString)

theTotalCount = 40000

theDescription = "Counting to 40,000"

theTestTime = Date.Now

for each aNumber in 0..theTotalCount

  if ((Date.Now - theTestTime).AsSeconds >=1) then

    UpdateProgress.DoIt({BeginTime, aNumber, theTotalCount, theProgressDialog,

          thePDTimeLeft, thePDPercentDone, thePDProgressBar, thePDCurrentTime,

          thePDDescription, thePDCurrentStep, theDescription})

    theTestTime = Date.Now

  end

end

theProgressDialog.Close

Theme and ID Field Scripts:

“Cancel” script:

' Jennessent.SampleThemeID_Cancel

self.GetDialog.SetModalResult(nil)

self.GetDialog.Close

“CheckOK” script:

' Jennessent.SampleThemeID_CheckOK

theDialog = av.FindDialog("Jennessent.SampleThemeID")

cmdOK = theDialog.FindByName("cmdOK")

lbxField = theDialog.FindByName("lbxField")

lbxTheme = theDialog.FindByName("lbxTheme")

cmdOK.SetEnabled(lbxField.HasSelection and lbxTheme.HasSelection)

“Close” script:

' Jennessent.SampleThemeID_Close

Self.SetObjectTag(nil)

Self.FindByName("cmdCancel").SetObjectTag(nil)

Self.FindByName("cmdOK").SetObjectTag(nil)

Self.FindByName("lblSelectField").SetObjectTag(nil)

Self.FindByName("lblSelectTheme").SetObjectTag(nil)

Self.FindByName("lbxField").SetObjectTag(nil)

Self.FindByName("lbxTheme").SetObjectTag(nil)

“OK” script:

' Jennessent.SampleThemeID_OK

theDialog = av.FindDialog("Jennessent.SampleThemeID")

lbxField = theDialog.FindByName("lbxField")

lbxTheme = theDialog.FindByName("lbxTheme")

self.GetDialog.SetModalResult({lbxTheme.GetCurrentValue, lbxField.GetCurrentValue})

self.GetDialog.Close

“Open” script:

' Jennessent.SampleThemeID_Open

AVUpperLeft = av.ReturnOrigin

AVCenter = avUpperLeft + (av.ReturnExtent / (2@2))

halfDialogWidthHeight = Self.ReturnExtent.ReturnSize / (2@2)

MovePoint = AVCenter - halfDialogWidthHeight

Self.MoveTo(MovePoint.GetX, MovePoint.GetY)

theDialog = av.FindDialog("Jennessent.SampleThemeID")

cmdCancel = theDialog.FindByName("cmdCancel")

cmdOK = theDialog.FindByName("cmdOK")

lblSelectField = theDialog.FindByName("lblSelectField")

lblSelectTheme = theDialog.FindByName("lblSelectTheme")

lbxField = theDialog.FindByName("lbxField")

lbxTheme = theDialog.FindByName("lbxTheme")

theView = av.GetActiveDoc

theThemes = theView.GetThemes

theSelectThemes = {}

for each aTheme in theThemes

  if (aTheme.Is(FTheme)) then

    if (aTheme.GetFTab.GetShapeClass.GetClassName = "Polygon") then

      theSelectThemes.Add(aTheme)

    end

  end

end

lbxTheme.DefineFromList(theSelectThemes)

lbxField.Empty

cmdOK.SetEnabled(False)

“Select Theme” script:

' Jennessent.SampleThemeID_SelectTheme

theDialog = av.FindDialog("Jennessent.SampleThemeID")

lbxField = theDialog.FindByName("lbxField")

theTheme = Self.GetCurrentValue

if (theTheme.Is(FTheme)) then

  theVTab = theTheme.GetFTab

else

  theVTab = theTheme.GetVTab

end

theFieldList = {}

for each aField in theVTab.GetFields

  if (aField.IsTypeShape.Not) then theFieldList.Add(aField) end

end

lbxField.DefineFromList(theFieldList) 

av.Run("Jennessent.SampleThemeID_CheckOK", nil)

“Sample Code” script:

' Jennessent.SampleThemeID_sample code

' THIS IS A SIMPLE EXTENSION TO OPERATE.  FIRST IDENTIFY THE DIALOG AND THEN USE THE 'OPEN'

' REQUEST TO RUN IT.  THE FOLLOWING CODE IDENTIFIES THE DIALOG, OPENS IT, THEN SHOWS YOU

' THE SELECTED THEME AND FIELD.  THE DEFAULT CODE ASSUMES IT IS BEING RUN FROM A VIEW.

theThemeIDDialog = av.FindDialog("Jennessent.SampleThemeID")

theThemeAndID = theThemeIDDialog.Open

if (theThemeAndID = nil) then return nil end

if (theThemeAndID.Get(0) = nil) then return nil end

theTheme = theThemeAndID.Get(0)

theIDField = theThemeAndID.Get(1)

msgBox.List(theThemeAndID, "Selected Theme and ID Field...", "Dialog Results:")

Back to Script/Dialog Tools Page | New Dialog Types

Please visit Jenness Enterprises ArcView Extensions site for more ArcView Extensions and other software by the author.  We also offer customized ArcView-based GIS consultation services to help you meet your specific data analysis and application development needs.