[Delphi] Skrypty w programie...

0

Mam taki (mały) problem.. Chciałem dodać do swojej aplikacji możliwość wykonywania małych skryptów.. Chodzi mi tutaj o np. coś takiego: jest Memo oraz jeden Button. W memo piszemy np. tekst:

ShowMessage('cześć!');

a po kliknięciu na button skrypt się wykonuje. Cos podobnego bylo zastosowane w programie WebSite Pro 4.0.. Proszę o jakąkolwiek pomoc [???]

0

Witam! Rozumiem o co ci chodzi (chyba). Rozwiazanie jest jedno: muszisz wszystko sam zaprogramować.
Żeby napisac apalikacje ktora umiala by wykonywac wszystkie komendy bez twoich instrukcji (twoich warunkow) musial bys zbudowac ja w nastepujacy sposob:
-jeden program bylby kompilatorem, ktory zapisywalby instrukcje np. do pliku 'kod.txt';
-drugi program musialby byc napisany szkieletowo i w odpowiednim mmiejscu kodu musialbys umiescic {$I kod.txt} - ten program musialby byc kompilowany przed uruchomieniem

//ps. to taki wstepny opis

Jesli nie chcesz kombinowac w ten sposob, tylko wolisz samemu programowac, to zobacz np. linka do mojej gry tekstowej (ponizej) - ona dziala wlasnie w ten sposob (tylko jest to "troche" bardziej skomplikowane...)

0

ech.. a nie dałoby się jakoś inaczej? Jakieś dopisywanie do kodu paru linijek z pliku tekstowego czy coś.. proszę o jakąkolwiek pomoc, juz mi mózg od tego wysiada ;-(

0

Już były na ten temat dyskusje, pomyśl, przecież jak napiszesz program, to nie ma siły, musisz go skompilować! Więc jakoś tak musiałbyś za każdym razem kompilować nowy program... Jeśli ma to być delphi - dołącz do programu kompilator delphi :-) I generuj swoim programem kod programu wynikowego (szkielet+instrukcje) [diabel] Nie no, to był żart ;) Tak serio, to musisz po prostu w programie to wszystko umieścić, czyli jeśli użytkownik wpisał ShowMessage to wyświetl komunikat itp. itd. ;] No, chyba że masz jakieś szaleńcze ambicje i znasz (za) dobrze assemblera [diabel] [diabel] [diabel]

0

heh... nie pozostaje mi już nic innego jak odłożyć ten pomysł na bok... Żeby zrobić takie okienko ze skryptami - faktycznie - musiałbym dodawac wszystkie znane mi funkcję delphi do kodu aby user mógł uzyskać jakiś efekt :) No nic, mówi się trudno...

0

Hm... no nie wiem, czy warto pomysł na bok odkładać, na pewno potrzebne będą ci wszystkie funkcje delphi?! Może wystarczy tylko kilka(naście) ? Wtedy to nie problem... szkoda tak z pomysłu rezygnować całkowicie...

0

Coobek a przeglądałeś arty w dziale Delphi [???] Znalazłem takie coś http://4programmers.net/view.php?id=427 może Ci się przyda.

Pozdrawiam...d[AvE]

0

I have (the) idea...
Kiedyś robiłem jezyk skryptowy z nudów i w ogole chciałem zeby bylo z formami i w ogole zeby byly zdarzenia dla tworzonych kontrolek obsłuzane i w ogole no i tak w ogole to nie jest to trudne tak mysle... <ort>odruznienie </ort>komend i ich interpretacja to male piwo... gorzej z ifami i petlami :-P np.

[code]ZmienTytul(nowytytul)
ZmienDlugosc(150)
Zrob_Pole_Tekstowe(x,y,w,h,tekst,id)[/code]

no i sprawa miewa sie tak:

pętelka na wszystkie linie... no tak (for i:=0 to memo.lines.count-1 do sprawdzaj(linia);)
potem interpretuj linie np. najpierw sprawdz czy to jest prawdziwa funkcja (jest ( i ) np. ; na koncu) potem sprawdzaj tekst od poczatku do ( no i jezeli tekst od poczatku do ( to ZmienTytul to forma_tworzona_dynamicznie.caption:=tekst od poczatku do (
Jak bys bardzo chcial src to na gg:1263497

0

A ja radzę skorzystać z gotowego języka skryptowego. Na razie najlepszy, jaki znalazłem, to Lua (http://lua.org).

0

Rzutowanie metod raczej nie pomoże.
Drajwer - ok, w porządku, to rzeczywiście nie jest trudne ;] Ale jemu chodzi (nie wiem dlaczego) o wszystkie polecenia delphi... ;/ A z tym już więcej problemu. Tak ja to przynajmniej rozumiem.

0

Nie Sasik, nie :) Faktycznie Drajwer ma rację, i chyba wykorzystam jego pomysł. Nie chodzi mi o wszystkie funkcje Delphi bo to by było bez sensu.. Co do porady thenklesa, dotyczącej Lua (<url>lua.org</url>) to stronka nawet nie chce się załadować... Ale i tak dzięki Wam za dobrą pomoc ludzie! Respect [browar] .

0

Możesz też spróbować zrobić coś takiego że program wywoływałby inny program, tylko z odpowiednimi parametrami. Np. Showmessage('sddsds'); to wywołałby np. program showmessage.exe z parametrem 'sddsds'. Może to nie jest za bardzo profesjonalne rozwiązanie ale jest :)

0

Heh :) Orginalne te wasze pomysly, nie powiem :) Ktorys z nich musze wykorzystac tak czy siak :P Jesli mi sie uda stworzyc ta funkcje w programiku to na pewno uwzglednie wasza pomoc w creditsach :-P [browar]

0

Hmm.. bardzo ciekawe :) Ale już pracuję nad skrptami w Delphi, więc to mi się jak na razie nie przyda :) Kto wie, może to też kiedyś wykorzystam.. Interesujące ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1