Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Befehl aus Edit-Feld ausführen (https://www.delphipraxis.net/173635-befehl-aus-edit-feld-ausfuehren.html)

Ondeth 7. Mär 2013 18:14

Delphi-Version: XE2

Befehl aus Edit-Feld ausführen
 
Es hört sich vielleicht komisch an , aber ich suche eine Möglichkeit, einen mehr oder weniger unbekannten Befehl,der in einem Edit-Feld steht,automatisch von meinem Programm auszuführen, d.h. :


In Edit1 steht z.B "*showmessage('test')* oder "*timer1.enabled :=true*"

Nun möchte ich , dass mein Programm eben diesen Befehl ausführt und mir einen Dialog ausgibt bzw Timer1 startet.(*Die Komponente Timer1 ist natürlich bereits vorher im Programm implementiert worden*)


Die Möglichkeit,das Edit-Feld auf bestimmte Befehle zu untersuchen,scheidet aus,da theoretisch jeder Delphi-Befehl ausführbar sein soll und ich somit nicht bestimmt weiß,welcher Befehl ausgeführt werden soll.



**Danke für Eure Antworten :)**

DeddyH 7. Mär 2013 18:16

AW: Befehl aus Edit-Feld ausführen
 
Mit Bordmitteln geht das überhaupt nicht, evtl. mit einem Interpreter (PascalScript oder Konsorten), aber selbst da bin ich nicht sicher.

P.S.: Willkommen in der DP :dp:

Ondeth 7. Mär 2013 18:17

AW: Befehl aus Edit-Feld ausführen
 
Ok , danke ;)

Luckie 7. Mär 2013 19:00

AW: Befehl aus Edit-Feld ausführen
 
Sind es denn so viele? Wäre es nicht einfacher sie aus einer Liste auszuwählen? Einen optionalen Text kann man ja dann noch über ein Eingabefeld eingeben lassen.

Der schöne Günther 8. Mär 2013 07:26

AW: Befehl aus Edit-Feld ausführen
 
Rein prozedurale Dinge wie ein
Delphi-Quellcode:
showMessage()
sicher nicht, aber mittels RTTI kannst du nur mit einer Handvoll Strings die dein Benutzer eingibt nach Objekten und Klassen mit einem bestimmten Namen suchen, schauen, ob sie Methoden und Properties mit bestimmten Namen haben, diese Methoden mit Parametern aufrufen ...

Beispiel: Benutzer gibt
Code:
meinObjekt.irgendeineProperty = meinAnderesObjekt.funktion(544.2);
ein.

Aber wenn du einfach nur etwas suchst, dass eine Handvoll vorher festgelegte Befehle wie showMessage() ausführt, wäre es wohl eher besser, dir im Quelltext eine Liste von vorher festgelegten Möglichkeiten anlegst und dann einfach schaust, ob im Edit-Feld etwas von 'showmessage' steht. Usw. Usw.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 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