Autor Beitrag
mick
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Di 16.02.10 16:36 
hallo zusammen -

meine frage:
ich habe eine turtle programmiert. neben der "leinwand" (image) der turtle ist ein richedit platziert, in dem der user waehrend der laufzeit eingaben machen kann. ich moechte nun diese eingaben zeilenweise als befehle interpretieren fuer die turtle.
oder anders ausgedrueckt: eine user-eingabe in einem eingabefeld soll ausgelesen und so interpretiert werden, als stuende sie als exakt dieser befehl im quellcode an der stelle (prozedur), wo die eingabe ausgelesen wird.

geht das?


beste gruesse,
mick.
martin300
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 186
Erhaltene Danke: 2



BeitragVerfasst: Di 16.02.10 16:45 
Hallo,
wenn es für die Turtle etwas gibt das so (oder ähnlich) aussieht:
ausblenden Delphi-Quelltext
1:
procedure KommandosAbarbeiten (Value:String)					

könntest du die procedure mit dem Text der im Richedit steht zeilenweise übermitteln.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Di 16.02.10 16:59 
danke fuer den hinweis, aber ich muss gestehen, dass ich nicht verstehe, wie das aussehen soll. braeuchte nochmals hilfe.

gruss,
mick.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 16.02.10 17:11 
Wenn es so eine Kommando-Abarbeiten-Methode nicht gibt (davon gehe ich eigentlich aus), dann muss man sich das selber basteln. Dazu muss man die einzelnen Befehle, die es gibt, mit Pos und Copy auseinanderfriemeln, um aus dem String den Befehl und mögliche Parameter zu bekommen.

Beispiel: Im RichEdit steht was von MachWas(13,37). Dann musst du dir eine Methpode basteln, die so einen String zerlegt in "Funktion" und "Paramter1", "Parameter2". Und dann geht das in etwa so weiter:

ausblenden Delphi-Quelltext
1:
2:
if Funktion = 'MoveXY' then
  MoveXY(Parameter1, Parameter2);


Ist nicht ganz trivial, aber da die Turtle afaik nur begrenzte Möglichkeiten hat, ist das noch halbwegs machbar. ;-)

_________________
We are, we were and will not be.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Di 16.02.10 17:27 
hallo -

ja, so weit war ich auch schon. hm. das ist sehr unschoen. wuerde das dann nun so implementieren. dennoch frage ich nochmals in die runde, da sich beide antwort-geber explizit auf die turtle als kontext bezogen haben: es muss ja nicht um turtle gehen, sondern um die allgemeine frage, ob eine usereingabe zur laufzeit als quellcode-befehl in der aktuellen codestelle interpretiert werden kann. da liefert delphi anscheinend nichts mit?

beste gruesse,
mick.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8535
Erhaltene Danke: 473

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 16.02.10 17:30 
Nein, so etwas ist in Delphi nicht vorgesehen. Es gibt iirc aber Parser-Komponenten/-Units die so etwas bis zu einem gewissen Grad können.

_________________
We are, we were and will not be.
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Di 16.02.10 18:07 
Ich werf eindach mal RemObjects PascalScript in die Runde. :wink:

Ansonsten ist das aber nicht möglich, da Delphi nicht interpretiert sondern compiliert wird. Wenn du das Programm ausführst, weiß Windows nicht mehr, wie dein Quellcode ausgesehen hat und es hat auch keinen Delphi-Compiler zur Hand. Du könntest höchstens den FreePascal-Compiler mitliefern. Bei interpretierten Programmiersprachen ist das durchaus möglich, PHP bietet dafür zum Beispiel einen Befehl an.
DonManfred
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 148
Erhaltene Danke: 2

Windows 7
Delphi XE3 Pro + HTML5Builder
BeitragVerfasst: Mi 17.02.10 07:34 
Bitte auf Crossposts hinweisen...

_________________
Gruss Manfred
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Mi 17.02.10 21:20 
alles klar.

besten dank,
mick.