Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TJvInterpreterProgram: wie einsetzen? (https://www.delphipraxis.net/58404-tjvinterpreterprogram-wie-einsetzen.html)

DevilsCamp 6. Dez 2005 16:10


TJvInterpreterProgram: wie einsetzen?
 
Benutzt irgendwer diese Komponente und wenn ja, wie setze ich die ein?

Wenn ich folgenden Code einsetze:
Delphi-Quellcode:
procedure ButtonClk(Sender: TOBject);
var
  s : String;
begin
  s := 'program test'+#13#10;
  s := s+'begin'+#13#10;
  s := s+'ShowMessage(''Hallo'');'+#13#10;
  s := s+'end.'+#13#10;
  JvInterpreterProgram1.Pas.Text := s;
  JvInterpreterProgram1.Run;
end;
Dann bekomme ich eine Meldung, dass "ShowMessage" undeclared sei...

mirage228 6. Dez 2005 16:12

Re: TJvInterpreterProgram: wie einsetzen?
 
Hi,

vielleicht musst du ein
Delphi-Quellcode:
uses Dialogs;
mit einbringen.

mfG
mirage228

DevilsCamp 6. Dez 2005 17:02

Re: TJvInterpreterProgram: wie einsetzen?
 
hat leider auch nicht funktioniert. :(
Dann meckert der rum, er könne die Unit Dialogs nicht finden.

arbu man 6. Dez 2005 18:01

Re: TJvInterpreterProgram: wie einsetzen?
 
zu erst der code für den intepreter
Delphi-Quellcode:
begin
  showmessage('lalalal');
end;
da du nun eine procedure im intepreter benutzt musst du sie ihm bei bringen das machst du bei interpreter.getvalue
da folgenen code einfügen:
Delphi-Quellcode:
procedure TForm1.JvInterpreterProgram1GetValue(Sender: TObject;
  Identifier: String; var Value: Variant; Args: TJvInterpreterArgs;
  var Done: Boolean);
begin
  if lowercase(Identifier)='showmessage' then begin
    showmessage(args.values[0]);
    done:=true;
  end;
end;

jim_raynor 6. Dez 2005 18:31

Re: TJvInterpreterProgram: wie einsetzen?
 
Zitat:

Delphi-Quellcode:
procedure TForm1.JvInterpreterProgram1GetValue(Sender: TObject;
  Identifier: String; var Value: Variant; Args: TJvInterpreterArgs;
  var Done: Boolean);
begin
  if lowercase(Identifier)='showmessage' then begin
    showmessage(args.values[0]);
    done:=true;
  end;
end;

Iihh. Ist das kompliziert. Wenn du das für 20 Funktionen gemacht hast, wird es echt unübersichtlich. Da gelobe ich mir doch lieber Pascal Script :) Da kann man direkt die Delphi-Funktionen registrieren.

DevilsCamp 6. Dez 2005 19:22

Re: TJvInterpreterProgram: wie einsetzen?
 
Man muss die Unit JvInterpreter_All einbinden. Da stehen so ziemlich die meisten Funktionen drin.

Aber ich habe inzwischen ein brauchbare Anleitung gefunden:
JvInterpreter Anleitung


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz