Jump to content

This site uses cookies. By continuing to browse the site you are agreeing to our use of cookies. Find out more here. X
X


Photo

Check that function exists

Check Function Exists

  • Please log in to reply
20 replies to this topic

#1 Mikeman27294

Mikeman27294

    Insert Member Title Here

  • Active Members
  • PipPipPipPipPipPip
  • 469 posts

Posted 22 February 2012 - 07:19 PM

Hey guys,
I know that you can check to see whether a variable has been declared by using the function IsDeclared. Is there a similar function that can tell me whether a function exists?

Thanks.
Spoiler








#2 JLogan3o13

JLogan3o13

    115 and holding

  • MVPs
  • 4,425 posts

Posted 22 February 2012 - 07:22 PM

Unless I am missing what you're asking, SciTe should tell you if it detects a missing function when you try to Run/Compile. Otherwise, I would think you could check with CTRL + F5 (SyntaxCheck Prod).

If you put a million monkeys on a million keyboards, one of them will eventually write a Java program. The rest of them will write Perl programs.

 

My Scripts: SCCM UDFInclude Source with Compiled Script, Disk Maintenance for Windows XP, "Deal-A-Day" Sites, Windows Firewall UDF


#3 jdelaney

jdelaney

    Universalist

  • Active Members
  • PipPipPipPipPipPip
  • 2,178 posts

Posted 22 February 2012 - 11:56 PM

Alt + L also shows the UDF's on the active sheet...helpful to keep from scrolling up and down.
IEbyXPATH-Grab IE DOM objects by XPATH
IEscriptRecord-Makings of an IE script recorder
ExcelFromXML-Create Excel docs without excel installed
GetAllWindowControls-Output all control data on a given window.

#4 guinness

guinness

    all-consuming swarm in inconspicuous disguise

  • Developers
  • 17,631 posts

Posted 23 February 2012 - 12:10 AM

IsDeclared should ideally be used when it's a last resort, though I've never used myself (did back a couple of years ago but that was bad!) Though I can't understand if you would like to know whether or not you've written a function, could you explain?

Example List: _AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrGeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()LockFile()Mapping CtrlIDsParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...
Updated: 26/09/2014


#5 OfChange

OfChange

    Seeker

  • Banned (NOT IN USE)
  • 4 posts

Posted 23 February 2012 - 12:15 AM

$func = call("Function") if @error then msgbox(1,"Failure","There is no such function")


#6 guinness

guinness

    all-consuming swarm in inconspicuous disguise

  • Developers
  • 17,631 posts

Posted 23 February 2012 - 12:23 AM

OfChange,

Looking at Call it states...

Both @error and @extended may contain values if the called function set them.


Edited by guinness, 23 February 2012 - 12:31 AM.

Example List: _AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrGeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()LockFile()Mapping CtrlIDsParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...
Updated: 26/09/2014


#7 OfChange

OfChange

    Seeker

  • Banned (NOT IN USE)
  • 4 posts

Posted 23 February 2012 - 12:26 AM

OfChange,

Looking at Call it states...


Hmm I guess I missed that. I apologize for the misleading post then

#8 Mikeman27294

Mikeman27294

    Insert Member Title Here

  • Active Members
  • PipPipPipPipPipPip
  • 469 posts

Posted 23 February 2012 - 06:04 AM

The reason I am asking is because I am writing a script at the moment in which I am using an array to store the menu information (It helps a lot with customization in the way of languages and customization of hotkeys). I am placing the names of the functions that need to be called in this array, and then when I use GuiCtrlSetOnEvent, if the function named by the array element doesn't exist, it doesn't error.
Spoiler


#9 AlmarM

AlmarM

    Programming my way.

  • Active Members
  • PipPipPipPipPipPip
  • 1,696 posts

Posted 23 February 2012 - 08:49 AM

The reason I am asking is because I am writing a script at the moment in which I am using an array to store the menu information (It helps a lot with customization in the way of languages and customization of hotkeys). I am placing the names of the functions that need to be called in this array, and then when I use GuiCtrlSetOnEvent, if the function named by the array element doesn't exist, it doesn't error.


Then make sure you use the right function names inside the array from the beginning. :)
  • Mikeman27294 likes this

Minesweeper

A minesweeper game created in autoit, source available.

 

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

 

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.


#10 water

water

    ?

  • MVPs
  • 15,733 posts

Posted 23 February 2012 - 08:59 AM

Do you sometimes read the help file :)
It clearly states:
"Sets @error to 0xDEAD and @extended to 0xBEEF if the function does not exist or invalid number of parameters."
$var = "Test1" Call($var) $Er = @error $Ex = @extended ConsoleWrite("$Er: " & $Er & " (dec), " & Hex($Er, 4) & " (hex); $Ex: " & $Ex & " (dec), " & Hex($Ex, 4) & " (hex)" & @CRLF) Call("Test2") $Er = @error $Ex = @extended ConsoleWrite("$Er: " & $Er & " (dec), " & Hex($Er, 4) & " (hex); $Ex: " & $Ex & " (dec), " & Hex($Ex, 4) & " (hex)" & @CRLF) Func Test2($param1) EndFunc   ;==>Test2

Gives you
$Er: 57005 (dec), DEAD (hex); $Ex: 48879 (dec), BEEF (hex) $Er: 57005 (dec), DEAD (hex); $Ex: 48879 (dec), BEEF (hex)
with Autoit 3.3.8.0

@Extended doesn't seem to work (always returns 0) but @error does. It returns @error and @extended as described.

Edited by water, 23 February 2012 - 09:08 AM.

UDFs:
Active Directory (NEW 2014-07-21 - Version 1.4.1.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2014-07-27 - Version 1.0.0.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2013-01-21 - Version 0.3.1.1) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
Tutorials:
ADO - Wiki

#11 AlmarM

AlmarM

    Programming my way.

  • Active Members
  • PipPipPipPipPipPip
  • 1,696 posts

Posted 23 February 2012 - 09:01 AM

"Sets @error to 0xDEAD and @extended to 0xBEEF if the function does not exist or invalid number of parameters."


Dead and beef, really..? :)

Minesweeper

A minesweeper game created in autoit, source available.

 

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

 

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.


#12 jchd

jchd

    Whatever your capacity, resistance is futile.

  • MVPs
  • 5,365 posts

Posted 23 February 2012 - 12:40 PM

Very old convention.

SQLite official website with full documentation (may be newer than the SQLite library that comes standard with AutoIt)

A work-in-progress SQLite3 tutorial. Don't miss other LxyzTHW pages!

SQL tutorial (covers "generic" SQL, but most of it applies to SQLite as well)

An excellent eBook covering almost every aspect of SQLite3: a must-read for anyone doing serious work.

 

SQLite Expert (freeware Personal Edition or payware Pro version) is a very useful SQLite database manager.

SQLitespeed is another feature-rich premier SQLite manager (includes import/export). Well worth a try.

 

PCRE v8.33 regexp documentation latest available release and currently implemented in AutoIt beta.

RegExp tutorial: enough to get started

Another excellent RegExp tutorial. Don't forget downloading your copy of up-to-date pcretest.exe and pcregrep.exe here

This wonderful site allows debugging and testing regular expressions (many flavors available). An absolute must have in your bookmarks.


#13 water

water

    ?

  • MVPs
  • 15,733 posts

Posted 23 February 2012 - 01:05 PM

Check this: Hexspeak
UDFs:
Active Directory (NEW 2014-07-21 - Version 1.4.1.1) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2014-07-27 - Version 1.0.0.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2013-01-21 - Version 0.3.1.1) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
Tutorials:
ADO - Wiki

#14 AlmarM

AlmarM

    Programming my way.

  • Active Members
  • PipPipPipPipPipPip
  • 1,696 posts

Posted 23 February 2012 - 01:22 PM

Aaaah.
Makes sense now. :)

Minesweeper

A minesweeper game created in autoit, source available.

 

_Mouse_UDF

An UDF for registering functions to mouse events, made in pure autoit.

 

2D Hitbox Editor

A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes.


#15 Mikeman27294

Mikeman27294

    Insert Member Title Here

  • Active Members
  • PipPipPipPipPipPip
  • 469 posts

Posted 23 February 2012 - 01:59 PM

Then make sure you use the right function names inside the array from the beginning. ;)

Yes, that would help, but I would like to have error alerts in my program if it doesn't work.



Do you sometimes read the help file :)
It clearly states:
"Sets @error to 0xDEAD and @extended to 0xBEEF if the function does not exist or invalid number of parameters."


I always read the help file. But I am not using the call function, I am using GuiCtrlSetOnEvent, as mentioned earlier.
Spoiler


#16 BrewManNH

BrewManNH

    באָבקעס מיט קודוצ׳ה

  • MVPs
  • 10,578 posts

Posted 23 February 2012 - 02:04 PM

As far as I am aware of, there's no function that checks to see if a function exists. Even if there were, you'd still have to recurse through your array of function names and check them individually, which kind of defeats the purpose of checking it in the first place because you can do it manually just as easily.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to an XP machine, and I'm not going to.

 

Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude

 

How to ask questions the smart way!

 

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.
Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.
_FileGetProperty - Retrieve the properties of a file SciTE Toolbar - A toolbar demo for use with the SciTE editorGUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.
GUIToolTip UDF Demo - Demo script to show how to use the GUIToolTip UDF to create and use customized tooltips. Latin Square password generator

 

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.


#17 JLogan3o13

JLogan3o13

    115 and holding

  • MVPs
  • 4,425 posts

Posted 23 February 2012 - 03:23 PM

Then you'd have to write a function to check to ensure your function to check functions is functioning. I believe that is one of the signs of the Apocalypse :)

If you put a million monkeys on a million keyboards, one of them will eventually write a Java program. The rest of them will write Perl programs.

 

My Scripts: SCCM UDFInclude Source with Compiled Script, Disk Maintenance for Windows XP, "Deal-A-Day" Sites, Windows Firewall UDF


#18 BrewManNH

BrewManNH

    באָבקעס מיט קודוצ׳ה

  • MVPs
  • 10,578 posts

Posted 23 February 2012 - 03:41 PM

Recursion level has been exceeded - The earth will cease to exist to prevent noob overflow.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to an XP machine, and I'm not going to.

 

Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude

 

How to ask questions the smart way!

 

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.
Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.
_FileGetProperty - Retrieve the properties of a file SciTE Toolbar - A toolbar demo for use with the SciTE editorGUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.
GUIToolTip UDF Demo - Demo script to show how to use the GUIToolTip UDF to create and use customized tooltips. Latin Square password generator

 

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.


#19 JohnOne

JohnOne

    John

  • Active Members
  • PipPipPipPipPipPip
  • 12,990 posts

Posted 23 February 2012 - 03:56 PM

I think the best way for you to go about this is to handle the error if it occurs.

Are you dynamically setting hotkeys via user input, where they enter the name of a function?

If this is the case, then I suggest you test the result of hotkeyset, as that will fail if the function does
not exist.

AutoIt Absolute Beginners Require a serial
 
 
OMG! Women are the cows of people.


#20 Mikeman27294

Mikeman27294

    Insert Member Title Here

  • Active Members
  • PipPipPipPipPipPip
  • 469 posts

Posted 24 February 2012 - 06:55 AM

Ok, thanks guys. It's not a requirement, just something I was hoping to get running. Oh well, I will survive :)
Spoiler






Also tagged with one or more of these keywords: Check, Function, Exists

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users