PDA

View Full Version : "macro" convert how into thinbasic?

largo_winch
18-01-2012, 21:11
How I can convert a "macro" on the fly to thinbasic?

' Empty GUI script created on 01-18-2012 20:04:16 by (ThinAIR)

Uses "console"

MACRO myMoney(d,l) = "EURO" + RSet\$(Format\$(d, "#,.00"), l - 1)

Function TBMain () As Long
Local a As String

a = myMoney(2345.67, 13)
MsgBox 0, a 'result should be: "euro 2,345.67"
End Function

bye, largo

Petr Schreiber
18-01-2012, 21:22
Hi largo_Winch,

the rules for conversion of PB MACRO functionality are simple:

Type 1: MACRO serves to create alias
Example:

MACRO myFloat = SINGLE

Converted - via ALIAS:

ALIAS SINGLE AS myFloat

Type 2: MACRO serves as kind of functionality shortcut
Example (yours):

MACRO myMoney(d,l) = "EURO" + RSet\$(Format\$(d, "#,.00"), l - 1)

Converted - via FUNCTION:

function myMoney( d as double, l as long ) as string
return "EURO" + RSet\$(Format\$(d, "#,.00"), l - 1)
end function

Petr

largo_winch
18-01-2012, 21:49
thank you petr for fast reply!

one more question: do you think this macro looks like more for a "function" or than "alias" ?

MACRO myLONYB (byt) = byt Mod 16
Alias byt Mod 16 as myLonyB(byt)

(meaning for byt = byte.)

"mod" command isn't used here correct, I know, it's just the question "alias" or "function" I am interested in ;)
'n = MOD(numeric_expression_1, numeric_expression_2)

I suggest that's look like more than function :oops:

Function myLonyB(byt As Byte)
Return Mod(byt,16)
End Function

bye, largo

Petr Schreiber
19-01-2012, 22:01
Hi,

I think your function version is exactly how I would do it (maybe I would just add AS BYTE).

The alias is good for 1:1 relationship, that is renaming one thing to another. Once it gets more complex, the function form is the right emulation approach.

Petr