Bonjour,
comment je peux utiliser des libraries dans un script pascal ??
ex: (uses test)
Version imprimable
Bonjour,
comment je peux utiliser des libraries dans un script pascal ??
ex: (uses test)
le script connait les syntaxes for et while ....
mais pour utiliser (uses library) comment ??
Bonjour et bienvenue sur developpez.com :D
Si tu n'es pas plus précis, personne ne saura répondre ;)
Quels scripts? Quelles libraries?
Desole, mais je suis un debutant en Delphi , et je fait un interpreteur pascal pir executer les code pascal, j'ai ajouter un atpascal, et atscript et tous les outils necessaire, et dans le Memo j'ecrit le code en pascal et je tape executer(bouton) et il execute le code dedans, mais j'ai besoin d'utiliser des library ou bien de Units.pas dans le script (Uses Units) ok, et pour utiliser les fonction dedans cette class ou bien library, mais je ne sais pas comment !!!!
le code d'execution est :
atPascalScripter1.SourceCode.Assign(AdvMemo1.Lines);
atPascalScripter1.Compile;
Ah le scripter de TMS, il est plus léger que celui de Dream, mais il faut du coup ajouter bcp de chose à la main ... (il y a nornalement des unités qui te fourni des classes entièrement mappées)
par exemple pour la propriété AsString d'un TField
Code:
1
2
3
4 with Scripter.AddDelphiClass(TField) do begin Defineprop('AsString', tkString, GetFieldAsStringProc, SetFieldAsStringProc); end;
ou alors ajouté une fonction (que soit dans un uses ou dans une dll)Code:
1
2
3
4
5
6
7
8
9 procedure TfEpcDesigner.GetFieldAsStringProc(AMachine: TatVirtualMachine); begin AMachine.ReturnOutputArg(TField(AMachine.currentObject).AsString); end; procedure TfEpcDesigner.SetFieldAsStringProc(AMachine: TatVirtualMachine); begin TField(AMachine.CurrentObject).AsString := AMachine.GetInputArg(0); end;
Code:scripter.DefineMethod('pad', 3, tkstring, nil, PadMethod);
Code:
1
2
3
4
5
6
7
8
9
10 procedure TfEpcDesigner.PadMethod(AMachine: TatVirtualMachine); var s: string; t: char; begin s := AMachine.getinputargasstring(0); t := AMachine.getinputargasstring(1)[1]; LPad(s, t, AMachine.getinputargasinteger(2)); AMachine.returnoutputarg(s); end;