Programowe dodanie do programu warunku if

Programowe dodanie do programu warunku if
M1
  • Rejestracja:około 11 lat
  • Ostatnio:około 7 lat
  • Postów:7
0

Witam,

Mam jedno pytanie:
Czy jest możliwość dodania programowo warunku If ...... Then.
Warunek ten byłby zapisany i zmieniany np. w RichEdit ?

Sam nic nie mogę wymyślić a w necie też nic na ten temat nie znalazłem.

Proszę o odpowiedź.

m_Lesiu
  • Rejestracja:około 12 lat
  • Ostatnio:około 4 lata
  • Postów:138
0

NiedawnoJakiś czas temu Kiedyś był podobny temat.
Ogólnie nie da się tego prosto zrobić tak jak np. w JS funkcją eval.


edytowany 2x, ostatnio: m_Lesiu
MI
  • Rejestracja:ponad 15 lat
  • Ostatnio:prawie 9 lat
0

Da sie i się nie da.

Nie da sie - Delphi to język programowania, a nie skryptowy. Kod wpisany w edytorze podczas kompilacji jest zamieniany na język maszynowy i nie ma możliwości łatwego sposobu na modyfikację kody w trakcie jego działania.

Da się - Parsowanie tekstu zawartego w tym np RichEdit i jego ręczne wykonywanie - coś w stylu interpretera. Czyli musisz rozebrać stringa RichEdit na części, wykryć co jest czym, a następnie wykonać.

Patryk27
Więc w językach skryptowych się nie programuje?
GU
"skryptuje się" :) no przecież to wiadome:D
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:16 minut
  • Lokalizacja:Tuchów
  • Postów:12175
0

@maxxam1 - napisz lepiej co chcesz uzyskać, bo z opisu to nie wynika;

Wykonywanie warunków na podstawie danych, zawartych w zmiennych czy polach komponentów używane są powszechnie, więc dopóki nie doprecyzujesz tego co chcesz zrobić, będziesz się musiał zadowolić powyższą odpowiedzią.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
M1
  • Rejestracja:około 11 lat
  • Ostatnio:około 7 lat
  • Postów:7
0

Jeżeli chodziłoby o warunek z wykorzystaniem dwóch zmiennych, to nie byłoby problemu np. if A>B then ..... , gdzie A i B to zmienne np. typu string. Zmieniam programowo tylko wartości A i B.

Natomiast w moim przypadku w obszarze pomiędzy if ......... then .... , liczba warunków oraz liczba i rodzaj zmiennych ma ulegać "dynamicznej" zmianie.
np. raz może być to :

  1. A>B
  2. (C<=G) or (D=R)
  3. (A<D) and (B<=C) or (D<B)
    itp. nie ma stałego schematu.
    Warunki z punktów 1 ..3 i inne miałyby być umieszczone i zmieniane w RichEdit.

z poważaniem

K.P.

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:prawie 2 lata
  • Lokalizacja:Wrocław
  • Postów:13042
0

Napisz parser wyrażeń i ewaluuj je, proste.


olesio
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Szczecin
  • Postów:4191
0

Można tak jak pisze Patryk, ale dla mnie osobiście to trochę czarna magia. Gdyż nie musiałem do tej pory rozgryźć takiego tematu. Od siebie polecał bym pokombinowanie z zestawem komponentów RemObjects Pascal Script III. Dzięki nim możesz sobie w jakiejś konrolce edycyjnej trzymać kod w składni Pascalowej i na niego reagować. Pokombinuj, to AFAIK chyba najprostsze gotowe rozwązanie.


Pozdrawiam.
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:9 dni
0

Biblioteka Jedy udostępnia bardzo prosty komponent do tego typu rzeczy.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
m_Lesiu
  • Rejestracja:około 12 lat
  • Ostatnio:około 4 lata
  • Postów:138
0

takie znalazłem, o:
Interpreter równań


M1
  • Rejestracja:około 11 lat
  • Ostatnio:około 7 lat
  • Postów:7
0
_13th_Dragon napisał(a):

Biblioteka Jedy udostępnia bardzo prosty komponent do tego typu rzeczy.

Znalazłem Bibliotekę komponentów ale "JEDI" myślę, że to o to chodzi. Który to komponent jeśli mozna spytać (chodzi mi o nazwę), bo jest tego od liku ?

P.K.

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:9 dni
0

Zakładka:
Jv Interpreter
Komponent:
TJvInterpreterProgram
Ściągnij demo tam od pyty przykładów.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.