Return de uma função direto em um outro comando Topic is solved

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

User avatar
juanmuscaria
Posts: 65
Joined: 29 Oct 2017, 10:53
Location: Brazil
Contact:

Return de uma função direto em um outro comando

15 Apr 2018, 18:08

Boa noite.
Gostaria saber se tem como fazer o que vou dizer abaixo:
Tenho a função "A" que retorna o valor "10",queria que ela retornasse esse valor direto em um comando (Vou coloca a msgbox como ex.) ao invez de ter que fazer
Var := A()
Msgbox %var%

eu fizesse:
Msgbox <e a funçao aqui>
Eu queria que ficasse tudo em uma linha só.
No script que to fazendo ele chama muito a mesma função antes de vários comandos então queria encurta o script com algo do tipo.
User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Return de uma função direto em um outro comando  Topic is solved

16 Apr 2018, 08:23

Bom dia Juanmuscaria.

Você pode forçar a interpretação dos parâmetros de um comando a se darem por meio de uma expressão matemática. Para fazer isso, basta usar o símbolo de percentual e um espaço logo no início do parâmetro em questão. Isso vai permitir o que você quer fazer.

Code: Select all

msgbox % Criar_Mensagem()
Return


Criar_Mensagem()
{
	Return "Olá mundo!"
}
Mas há algumas ressalvas: primeiro, quando você força um parâmetro a ser interpretado dessa forma, todos os parâmetros subsequentes (somente os subsequentes!) também serão interpretados em forma de expressão matemática. Isso quer dizer que se eu forçar o parâmetro3 de um comando a ser interpretado assim, os parâmetros 4, 5, 6 (e quantos mais tiver) serão também interpretados como em forma de expressão matemática. Além disso, alguns comandos simplesmente não aceitam esta funcionalidade (é sempre bom testar para ver se o comando aceitou corretamente quando você escrever uma linha dessas).
garry
Posts: 3758
Joined: 22 Dec 2013, 12:50

Re: Return de uma função direto em um outro comando

16 Apr 2018, 10:57

@Gio , obrigado para function
boa tarde , outros exemplos para 'msgbox'

Code: Select all

;-  sobre 'msgbox' , ajudo user  'BoBo'
; - https://autohotkey.com/boards/viewtopic.php?f=9&t=43170

;- primeiro exemplo
a:=5
c:=(a*2)
e4x= Preço=%c%
MsgBox, 262208,TEST-1 ,%e4x%


;- segundo exemplo
f2=%a_scriptdir%\msgbox_test2.ahk
ifexist,%f2%
  filedelete,%f2%
e5x=
(LTrim Join`r`n `
SetWorkingDir,%a_scriptdir%              ;- veja diferença  > C:\......
MsgBox, 262208,TEST-2 ,This is a test`nSecond Line`n%e4x%
Return
)
fileappend,%e5x%,%f2%
run,%f2%


;- terceiro exemplo
f3=%a_scriptdir%\msgbox_test3.ahk
ifexist,%f3%
  filedelete,%f3%
e6x=
(LTrim Join`r`n % `
SetWorkingDir,%a_scriptdir%            ;- veja diferença  > %a_scriptdir%
MsgBox, 262208,TEST-3 ,This is a test`nSecond Line`n%e4x%
Return
)
fileappend,%e6x%,%f3%
run,%f3%
exitapp
User avatar
juanmuscaria
Posts: 65
Joined: 29 Oct 2017, 10:53
Location: Brazil
Contact:

Re: Return de uma função direto em um outro comando

21 Apr 2018, 21:27

Gio wrote:Bom dia Juanmuscaria.

Você pode forçar a interpretação dos parâmetros de um comando a se darem por meio de uma expressão matemática. Para fazer isso, basta usar o símbolo de percentual e um espaço logo no início do parâmetro em questão. Isso vai permitir o que você quer fazer.

Code: Select all

msgbox % Criar_Mensagem()
Return


Criar_Mensagem()
{
	Return "Olá mundo!"
}
Mas há algumas ressalvas: primeiro, quando você força um parâmetro a ser interpretado dessa forma, todos os parâmetros subsequentes (somente os subsequentes!) também serão interpretados em forma de expressão matemática. Isso quer dizer que se eu forçar o parâmetro3 de um comando a ser interpretado assim, os parâmetros 4, 5, 6 (e quantos mais tiver) serão também interpretados como em forma de expressão matemática. Além disso, alguns comandos simplesmente não aceitam esta funcionalidade (é sempre bom testar para ver se o comando aceitou corretamente quando você escrever uma linha dessas).
Obrigado.
Só fui ver agora que acabo minha semana de prova :lol:

Return to “Ajuda e Suporte Geral”

Who is online

Users browsing this forum: Google [Bot] and 16 guests