AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wie wird aus einem String eine Anweisung?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie wird aus einem String eine Anweisung?

Ein Thema von Sel2012 · begonnen am 25. Aug 2015 · letzter Beitrag vom 27. Aug 2015
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Wie wird aus einem String eine Anweisung?

  Alt 27. Aug 2015, 00:05
Hallo Mavarik, hast du auch die Antwort (#7) gelesen? Vielleicht bin ich ja zu doof, aber bei mir klappt das leider nicht.
Daraus wird keine funktionierende Anweisung, sondern das Ding bleibt ein tatenloser string.
Ich weiß ja nicht, wo du deinen String herzauberst. In dem Vorschlag kommt nämlich gar keiner vor. Also red keinen Scheibenkleister.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Wie wird aus einem String eine Anweisung?

  Alt 27. Aug 2015, 00:34
Für so etwas brauchst Du halt einen Interpreter (oder einen Compiler, der den text auch interpretiert und daraus eine Exe baut).

Einen Compiler wirst Du nicht bauen können. Das kannst Du gleich vergessen.

Aber Du kannst ggf. einfache Texte interpretieren. Dazu musst Du sie zerlegen und den Sinn ermitteln.
Wenn es eine begrenzte Anzahl von Kombinationen gibt, dann geht so etwas, aber es ist aufwendig.

Wenn Du z.B. einen Text in 3 Teile zerlegst, kannst Du z.B. so etwas machen:

Delphi-Quellcode:
if S1 = 'Closethen Close;

if (S1 = 'Panel1') and (S2 = 'Visible') and (S3 = 'True') then
  Panel1.Visible := True;

if S1 = 'Klosethen Close;

if (S1 = 'Tafel') and (S2 = 'Sichtbar') and (S3 = 'Ja') then
  Panel1.Visible := True;
Also Du gibst dem Programm vor, was es bei bestimmten Texten tun soll.
Das ist aber dann kein wirklicher Pascal-Quelltext, der dynamisch compiliert wird.

Bei Delphi muss der Quelltext komplett vorher kompiliert werden. In der Exe steht dann der komplette ausführbare Maschinencode.
Dynamische Texte zur Laufzeit "nachzuübersetzen" geht halt nicht.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#23

AW: Wie wird aus einem String eine Anweisung?

  Alt 27. Aug 2015, 05:43
Hallo,
an den Threadersteller.

Bitte noch mal den neuen Quellcode zeigen.

PS:
Warum so negativ zu FindComponent?
Wenn ich verschiedene Arten von Komponenten habe,
fange ich doch nicht an, mir mehrere Arrays zu basteln,
aber hier geht es erst mal um Circles, also OK.

PS2:
Von RemObjects gibt es PascalScript,
da wäre unser Interpreter.


Heiko
Heiko

Geändert von hoika (27. Aug 2015 um 05:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#24

AW: Wie wird aus einem String eine Anweisung?

  Alt 27. Aug 2015, 10:11
Mit FindComponent verlässt man ein wenig den OOP Pfad und CleanCode ist sowieso schon Geschichte.

Wir kennen die Beweggründe nicht, aber ich vermute mal so etwas wie eine Aussteuerungsanzeige. Anyway, dafür gibt es Klassen (hier wäre wohl ein Frame angesagt) um etwas Komplexeres zusammenzufassen und dadurch in der Handhabung einfacher zu machen.

Wer keine Frames verwenden möchte und auch keine neue Komponente dafür erstellen möchte, der schreibt sich eine einfache Klasse, die dann diese x Controls entgegennimmt und entsprechend ansteuert.

FindComponent ist wie "Schauen wir mal", die Verwendung von Klassen schafft Tatsachen.

Jeder entscheidet selber, ob er mit Tatsachen oder mit Weissagungen programmieren möchte. Ich kann mit Tatsachen allerdings erheblich besser umgehen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (27. Aug 2015 um 10:13 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 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