# Pascal script set var question

**URL:** https://talk.remobjects.com/t/pascal-script-set-var-question/10074
**Category:** Pascal Script
**Created:** [July 15, 2016, 2:55pm UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074 "2016-07-15T14:55:16Z")
**Posts on this page:** 7
**Page:** 2

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 10:24am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/21 "2016-07-18T10:24:17Z")

</div>

If it’s not documented, no one has made this and do not exists an example… It’s not possible, true?

The conclusion is that we can’t insert, from out of the Script, variables that does not exists in the host program, to be used inside the script, and recover finally his values from outside the Script.

Thank you!

---

<div class="post-metadata">

### Author: ![ck](https://talk.remobjects.com/user_avatar/talk.remobjects.com/ck/32/8740_2.png) [@ck](https://talk.remobjects.com/u/ck)
#### Post date: [July 18, 2016, 11:26am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/22 "2016-07-18T11:26:26Z")

</div>

As I said before:

> [@ck](#):
>
> (And hasn’t changed in like 12 years)
> 
> And SetVarToInstance is just a shortcut to:
> 
> var p: PIFVariant;  
> p := GetVariable(VarName);  
> if p \<\> nil then  
> begin  
> SetVariantToClass(p, cl);  
> end;
> 
> The same can be done for integers, like:
> 
> VSetInt(GetVariable(‘VArName’), 15);

---

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 11:29am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/23 "2016-07-18T11:29:25Z")

</div>

Don’t works. You only need to read my ask to this.

---

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 11:45am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/24 "2016-07-18T11:45:16Z")

</div>

function TConfigCompOrm.EvaluatePair(Pair :TCalcPair):TField;  
var Parser :TMathParser;  
FScript := TPSScript.Create(nil); { Create an instance of the ScriptPascal }  
FPair := Pair;  
FScript.OnCompile := OnScriptCompile;  
FScript.OnExecute := OnScriptExecute;  
try  
if not FScript.Compile then begin  
Pair.Result.Clear;  
Result := Pair.Result;  
raise Exception.Create(Pair.Result.FieldName +’: ‘+ FScript.ExecErrorToString+’ '+FScript.ExecErrorParam);  
end  
else begin  
FScript.Execute; // Run the script.  
Result := Pair.Result;  
end;  
Result := Pair.Result;  
finally  
FScript.Free;  
end;

---

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 11:46am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/25 "2016-07-18T11:46:44Z")

</div>

procedure TConfigCompOrm.OnScriptCompile(Sender: TPSScript);  
begin  
if FPrecursor is TItemOrm then begin  
FScript.AddRegisteredVariable(‘QTY\_QUANTITY’, ‘Extended’);  
FScript.AddRegisteredVariable(‘CD\_COMPONENT’, ‘String’ );  
RegisterVariablesFrom(TItemOrm(FPrecursor));  
end else  
if FPrecursor is TConfigCompOrm then begin  
RegisterVariablesFrom(TConfigCompOrm(FPrecursor));  
end;  
end;

---

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 11:50am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/26 "2016-07-18T11:50:10Z")

</div>

When Just after “if not FScript.Compile then begin” that should register…  
FScript.AddRegisteredVariable(‘QTY\_QUANTITY’, ‘Extended’);  
FScript.AddRegisteredVariable(‘CD\_COMPONENT’, ‘String’ );

An exception says: QTY\_QUANTITY :No Error.

---

<div class="post-metadata">

### Author: ![Juan\_C.Cilleruelo](https://talk.remobjects.com/user_avatar/talk.remobjects.com/juan_c.cilleruelo/32/2989_2.png) [@Juan\_C.Cilleruelo](https://talk.remobjects.com/u/Juan_C.Cilleruelo)
#### Post date: [July 18, 2016, 11:53am UTC](https://talk.remobjects.com/t/pascal-script-set-var-question/10074/27 "2016-07-18T11:53:58Z")

</div>

Ah!!! the script don’t make reference to CD\_COMPONENT…

[Previous page](https://talk.remobjects.com/t/pascal-script-set-var-question/10074.md?page=1)
