Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scriptdatei einem Button zuweisen - Geht das? (https://www.delphipraxis.net/124311-scriptdatei-einem-button-zuweisen-geht-das.html)

torud 18. Nov 2008 13:58


Scriptdatei einem Button zuweisen - Geht das?
 
Hallo Wissende,

ich habe das Problem, dass ich mehere Programme verschiedenen Kunden ausgeliefert habe. Der Kunde möchte nach Möglichkeit das teilweise Verhalten des Programms selbst ändern. Da er kein Delphi hat, stellt sich nun die Frage, ob es nicht möglich wäre hinter dem Button sozusagen eine Scriptdatei abzulegen, welche beim Start geladen und zugewiesen wird.

Ich weiss, dass es Programme gibt, die so etwas vorweisen können, will hier auch nicht das grosse Messer auspacken, würde aber gern wissen, ob sowas grundsätzlich mit einfachen Mitteln möglich ist!? Es geht auch nicht darum Pseudosprachen zu benutzen, sondern einfach nur Pascal.

Lohnt sich da TMS Scripter Studio Pro? Ich will ja nicht das ganze Programm neu schreiben, sondern eine Lösung jetzt nachträglich implementieren, falls überhaupt möglich.

mkinzler 18. Nov 2008 14:11

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Du könntest die auch
Pascal Script,
Sysygy Script Engine
ansehen

Meflin 18. Nov 2008 14:11

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Vielleicht ist PascalScript von RemObjects ja schon die Lösung für dich. Ist kostenlos ;)
http://www.remobjects.com/ps.aspx

torud 29. Nov 2008 13:07

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Hallo,

ich habe mir beide Threads durchgelesen, verstehe aber ehrlich gesagt nicht ganz, wie man einem Button in fertigen Programm die Funktionalität eine externen Scriptes zuweisen kann. Kann mir hier vielleicht etwas Starthilfe geben!?

MSSSSM 29. Nov 2008 14:58

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Im Thread der Sysygy Script Engine ist beschrieben,wie man ein Script ausführen kann.
Baue dies einfach in den OnClick des Buttons ein.

toms 29. Nov 2008 15:11

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo

Lade doch mal das PS herunter und installiere es.

Im Verzeichnis \Samples\ findest du einige Beispiele.

Ich habe zudem das \Samples\Debug\ide Beispiel angehängt.

torud 22. Jan 2009 09:44

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Leider ist das alles irgendwie zu kompliziert für mich.

Das Ganze Kompilieren trallala ist viel zu viel des Guten. Ich wollte von Anfang an nur ein ganz simples Formular, auf dem sich ein Button befindet. Dieser Button läd zur Laufzeit eine Scriptdatei und führt bei Klick alles aus, was sich in dem Script befindet. Leider konnte ich mir aus den vielen Beispielen und Links keinen Reim drauf machen, wie das gehen soll.

Also später vielleicht soll man auch im Programm das Script ändern können, aber als Testversion würde es mir völlig reichen herauszufinden, wie ich obigen Wunsch EINFACH realisieren kann. Ich hatte es mir so vorgestellt, dass ich zur Laufzeit oder im OnCreate den Buttons dann die Scripte zuweisen könnte, die sie ausführen sollen, wenn man einen Button drückt.

Z.B.
Button1 -> Button1.tvs
Button2 -> Button2.tvs

Sagen wir ich habe ein Formular, einen Button und ein Memo, um es ganz einfach zu halten. Dann würde ich gern in das externe Script folgendes schreibe, wenn das überhaupt so ginge:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add('Dies ist ein Test');
end;
Ich würde mich über ein kleines Feedback oder Beispiel freuen.

nahpets 22. Jan 2009 13:56

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Hallo,

was hast Du vor?

So 'ne Art Mini-Editor für sagen wir mal Batchdateien, VBScripte oder sowas?
Was bedeutet die Dateiendung tvs?

Wie wird denn ein derartiges Script normalerweise ausgeführt?
Durch Doppelklick im Explorer oder muss da irgendein Programm gestartet werden oder...

Nehmen wir mal an, es seien Batchdateien. Die kannst Du zuerstmal problemlos in 'nem Memo bearbeiten.
Über einen Öffnen- und einen Speicherndialog kannst Du sie laden, editieren und speichern.

So: Nun wollen wir da mal so 'ne Kombination daraus:

Batchdatei laden über einen Öffnendialog.
Batchdatei ist im Memo.
Button ausführen drücken:

Da könntest Du zuerst das Memo als Datei speichern (den Dateinamen hast Du Dir beim Öffnen irgendwo gemerkt).
Du weißt, wo die Datei gespeichert wurde und könntest nun per
Delphi-Quellcode:
ShellExecute(nil,'CMD.EXE /C',Scriptdateinamemitpfad, nil, SW_SHOWNORMAL);
das Script ausführen.

Für Deinen Fall müsstest Du dann das 'CMD.EXE /C' durch den Pfad und den Namen des Programmes ersetzen, das letztlich für die Ausführung Deiner *.tvs-Dateien zuständig ist.

So ein ShellExecute kannst Du aber auch in das OnClick-Ereignis eines jeden Buttons legen.

torud 22. Jan 2009 15:46

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Hallo,

erstmal vielen Dank für Deine Antwort. Die Dateiendung tvs ist eigentlich unwichtig. Es hätte genauso gut auch die Endung txt zum Einsatz kommen können. In der Datei, welche einem Button zugewiesen wurde, will ich eigentlich ganz einfachen Delphi-Code hinterlegen. Aber ich denke mal, dass das gar nicht so einfach geht, wie ich mir das vorstelle...!?

Damit hätte ich aber eben die Möglichkeit mein Tool auch mal einfach über einen Editor zu ändern, ohne immer neu kompilieren zu müssen...

Ich hoffe, ich habe keine Fragen offen gelassen!?

Florian Hämmerle 22. Jan 2009 15:56

Re: Scriptdatei einem Button zuweisen - Geht das?
 
Für Scripte eignet sich auch TJvInterpreterProgram von den JEDIs. Ein Tutorial dazu (sehr ausführlich und gut!!) findest du bei DGL.

mfg Flö


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:12 Uhr.
Seite 1 von 2  1 2      

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