Der Quellcode ist sehr umfangreich, darum wollte ich niemand damit belästigen.
Mit dem Debugger wurde getestet, das Event wurde gar nicht ausgelöst
(breakpoint nicht erreicht im Form2KeyPress).
Ausserdem zeige ich der Zustand vom Zchg = Kopie von key am Display.
Umschalten von Form1 auf Form2 passiert folgendenmassen :
Der Button1 startet zuerst RS232 und damit kommen Meldungen von der CNC ( die sind auch sichtbar
auf dem Monitor (rote Zeichen unten). Wird eine bestimmte Meldung (genau die, welche beginnt mit 04)
empfangen (siehe Fehler Zeile) wird eine Procedur(MAN) in
unit NCAS00 aufgerufen.
In der
unit NCAS00 ist auch die Form2 deklariert, der ganze Aufbau von REF/MAN Menue wird unter
klasse Form2.Image2 gemacht, alle Anzeigen funktionieren laufend, nur das event für Form2KeyPress kommt beim Tastendruck nicht.
Bevor der Button1 aktiviert wurde, läuft programm in Wartestellung (siehe blaue Bildschirm oben)wo die Grafik in Form1.Image1 aufgebaut wurde. Hier gibt es methode Form1KeyPress die problemlos funktioniert .Form1KeyPress und Form2KeyPress sind praktisch
gleich aufgebaut: Zchg ist globale var typ Char.
procedure TForm2.Form2KeyPress(Sender: TObject; var Key: Char);
begin
Zchg := Key;
end;
resp.
procedure TForm1.Form1KeyPress(Sender: TObject; var Key: Char);
begin
Zchg := Key;
end;
Ich vermute das es etwas zu tun hat mit dem Button1 erreignis.
Wenn das Menue MAN/REF aufgebaut ist, ist der Focus auf die Form2 (das sieht man auf dem Screen).
Da sollte der KeyPress funzen, tut es aber nicht!
Ich verwende nur
Standart Delphi7 Komponenten, für die RS232 dann die
WinAPI Funktionen.
Ich denke ,dass sollte als Erklärung reichen, falls jemand mehr will gebe ich gern Auskunft.