Autor |
Beitrag |
meik
Hält's aus hier
Beiträge: 7
|
Verfasst: Do 25.10.07 21:03
Hallo Leute,
Auf meinem Hauptrechner läuft ein Delphiprogramm und es ist der Apache-Server installiert.
Ich möchte jetzt eine html-Seite erstellen, auf der es 2 Buttons gibt. In meinem Delphiprogramm gibt es ebenfalls 2 Buttons.
Die html-seite wird über das Netzwerk aufgerufen.
Jetzt soll beim Klick auf Button1, auf der html-seite, die Procedure im Delphiprogramm ausgeführt werden, die für das OnClick-Ereigniss im von Button1(im Delphiprogramm) definiert ist.
Wie stell ich das am geschicktesten und einfachsten an!?
es geht lediglich darum, wie ich das anstelle, dass beim klick des buttons auf der html-seite eine "nachricht" an das delphiprogramm geschickt wird, "Button wurde gedrückt..."
wozu ich das brauche?
eine anlage wird über ein webio(webinterface) von einem delphiprogramm gesteuert, das auf einem hauptrechner läuft.
es gibt zwei auswahlmöglichkeiten, was die anlage machen soll, welche über die buttons ausgewählt werden.
nun soll aber zusätzlich ein beliebiger andere pc an dieses netzwerk angeschlossen werden und eben falls die anlage bedienen können. auf dem 2. rechner soll aber keine software oder ähnliches installiert werden.
deswegen dachte ich es wäre das günstigste sowas über den explorer des 2. rechners zu "steuern".
wozu man das braucht? das ganze soll zu demonstrationszwecken dienen.
ich wäre euch sehr dankbar, wenn ich einige vorschläge von euch bekommen würde.
|
|
mkinzler
      
Beiträge: 4106
Erhaltene Danke: 13
Delphi 2010 Pro; Delphi.Prism 2011 pro
|
Verfasst: Do 25.10.07 21:09
_________________ Markus Kinzler.
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Do 25.10.07 22:00
Ich würd mal sagen du speicherst einfach per PHP einen Wert in eine Datei (glaube fopen, fputs, fgets, freads heißen die funktionen). Im Delphi-Proggi wird diese Datei dann immer wieder per Timer ausgelesen, und sobald sich was tut die Aktion ausgeführt (und die Datei zurückgesetzt)
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Agawain
      
Beiträge: 460
win xp
D5, MySQL, devxpress
|
Verfasst: Do 25.10.07 22:13
hi
warum mußt Du den Apache verwenden?
Korrekt ohne Umwege, wäre es wenn es eine Server-Anwendung in Delphi ist.
Wenn aus irgendwelchen Gründen Apache beteiligt sein muß, da fällt mir leider nur ein, eine servlet-engine zu installieren, einen Listener in Java zu schreiben, die Anfrage dort zu empfangen und dann an Delphi-Server-weiterzuleiten.
Apache ansich kann sowas doch nicht leisten, zumindest IMHO nicht.
Widerspräche auch irgendwie dem Client-Server-Prinzip.
Gruß
Aga
_________________ Gruß Aga
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Do 25.10.07 22:28
Also bei mir funzt es, Delhpi-Programm und Script im selben Verzeichnis, Timer hab ich auf 300 gestellt:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Shape1: TShape; Timer1: TTimer; Memo1: TMemo; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1; pfad: string; implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin shape1.brush.Color := clRed; end;
procedure TForm1.Button2Click(Sender: TObject); begin shape1.brush.Color := clGreen; end;
procedure TForm1.Timer1Timer(Sender: TObject); var p: Integer; begin p := 0; try memo1.Lines.LoadFromFile('datei.txt'); p := StrToInt(memo1.Lines[0]); deletefile('datei.txt'); except end; case p of 1: button1click(self); 2: button2click(self); end; end;
procedure TForm1.FormCreate(Sender: TObject); begin pfad := extractFilePath(paramstr(0)); end;
end. |
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <form action=""> <input type="submit" value="Knopf 1" name="knopf"> <input type="submit" value="Knopf 2" name="knopf"> </form>
<? if (isset($knopf)) { $f = fopen("datei.txt","w"); switch ($knopf) { case "Knopf 1": fputs($f,"1"); echo "K1 gesetzt"; break; case "Knopf 2": fputs($f,"2"); echo "K2 gesetzt"; break; } } ?> |
Einloggen, um Attachments anzusehen!
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 26.10.07 00:35
Warum nicht einfach 'n Server in der Anwendung machen, und wenn 1 oder 2 über das PHP-Skript geschrieben wird, wird die entsprechende OnClick-Routine ausgeführt ...
Wenn Du schon auf Änderungen prüfst, arbeitet wenigstens mit FileChange-Notifications von Windows; das spart Dir einiges an Resourcen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
meik 
Hält's aus hier
Beiträge: 7
|
Verfasst: Fr 26.10.07 11:23
Tilman hat folgendes geschrieben: | Also bei mir funzt es, Delhpi-Programm und Script im selben Verzeichnis, Timer hab ich auf 300 gestellt: |
ich hätte bitte eine Frage, sollte das Delphi und PHP im gleichen Pfad sein oder nicht unbedingt????
Moderiert von Narses: Code aus dem Komplett-Zitat gekürzt.
|
|
DarkHunter
      
Beiträge: 477
Win XP
D3 Prof, D2005 PE
|
Verfasst: Fr 26.10.07 12:02
_________________ I believe that every human has a finite number of heart-beats. I don't intend to waste any of mine running around doing exercises.
- Neil Armstrong
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 26.10.07 12:03
Dagegen spricht, dass du mit diesen 4 Funktionen keine laufenden Programme direkt steuern kannst.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
DarkHunter
      
Beiträge: 477
Win XP
D3 Prof, D2005 PE
|
Verfasst: Fr 26.10.07 12:10
Stimmt, das habe ich eben nicht bedacht.
Aber diese Kommunikation über eine Datei ist meiner Meinung nach nicht das gelbe vom Ei.
Da ebenfalls ein Rechner im Netzwerk angesprochen werden soll, könnte man nicht die Sockets vom PHP nutzen?
In das Delphi-Programm kommt dann zusätzlich ein TServerSocket um die Daten zu empfangen.
Dann wird das Programm nur aktiv wenn es wirklich sein muss, sollte ein paar Ressourcen sparen.
_________________ I believe that every human has a finite number of heart-beats. I don't intend to waste any of mine running around doing exercises.
- Neil Armstrong
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Fr 26.10.07 14:47
meik hat folgendes geschrieben: | ich hätte bitte eine Frage, sollte das Delphi und PHP im gleichen Pfad sein oder nicht unbedingt???? |
Die müssen nicht im selben Verzeichnis liegen. Aber dann musst du in deinem Delphi-Programm halt den kompletten Pfad zur Datei angeben.
Moderiert von Narses: Zitat gekürzt.
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
meik 
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 30.10.07 10:40
Tilman hat folgendes geschrieben: | Also bei mir funzt es, Delhpi-Programm und Script im selben Verzeichnis, Timer hab ich auf 300 gestellt: |
Das Delphiprogramm zeigt einen Fehler an. könnte jemand erklären wo der fehler liegen könnte??obwohl es bei Tilman das Programm funktioniert. im Anhang kann man den fehler sehen als Bild.Zur info benutze ich Delphi5.
Moderiert von Narses: Quote gekürzt.
Einloggen, um Attachments anzusehen!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 30.10.07 18:51
Sitzt vor dem Rechner ...
Laut der Meldung: Die Datei existiert nicht ... Steht doch alles da!!!
Bitte Fullquote zu gunsten eines Back-Links rausnehmen (oder auf gezielte Sachen mit Split-Quote eingehen ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
meik 
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 30.10.07 21:43
ok, ich werde das machen. danke schön
Moderiert von Narses: Quote entfernt... 
|
|
|