next up previous contents
Next: 3.3.2.3 Generic LuaCOM objects Up: 3.3.2 Using Methods and Previous: 3.3.2.1 Extensible interfaces   Contents


3.3.2.2 Default methods

A dispinterface can have a default method or property, that is, one that is called when the client does not specify the method name. LuaCOM calls the default method when the object itself is used as a function.


  excel = luacom.CreateObject("Excel.Application")
  excel.Visible = true
  
  excel.Workbooks:Add()

  
  -- Here we call the default method
  -- notice we DID NOT use the colon, as
  -- the object used is Sheets, not excel

  sheet = excel.Sheets(1)
  print(sheet.Name)
  
  -- Here we also call the default method
  -- We must supply the self parameter
  sheets = excel.Sheets
  sheet2 = sheets(2)
  print(sheet2.Name)
  
  -- Setting values
  excel.Sheets(1).Name = "MySheet1"
  
  excel:Quit()

This can be very useful when dealing with collections, as commonly they have a default Item property.

WARNING: one must be careful not to put the colon when using default methods of LuaCOM objects contained in table or in other LuaCOM objects (see the sample above).



Fabio Mascarenhas de Queiroz 2004-09-13