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

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Return de uma função direto em um outro comando

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

Post by juanmuscaria » 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:

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

Post by garry » 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

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

Post by Gio » 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).

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

Post by juanmuscaria » 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.

Top