Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi KeyPress unter Form2 funktioniert nicht. (https://www.delphipraxis.net/180314-keypress-unter-form2-funktioniert-nicht.html)

vagtler 12. Mai 2014 13:43

AW: KeyPress unter Form2 funktioniert nicht.
 
http://www.tmssoftware.com/site/async32.asp

akurka 12. Mai 2014 14:21

AW: KeyPress unter Form2 funktioniert nicht.
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Sir Rufo

Vielen Dank für das Programmbeispiel. Leider konnte ich es
nicht laufenlassen, da es im ContainerData beim Sleep
mit kompilieren hängen bleibt.

Nach dem ersten Durchsicht Deines Beispiels würde es für mich bedeuten, dass Bestehende komplett über Bord zu werfen und neu anzufangen.
Da, wenn ich es dann erlebe, werde ich noch 85 Jahre alt(jetzt 75).Das Jetztige Programm war 6 MannJahre.

Ich muss zuerst erwähnen, dass der bisherige Programm 16 Menüs hat, mit jeweils einigen Untermenüs. Das was Du gesehen hast, ist nur ein sehr kleine Teil des Ganzen.

Die Kommunikation geht nicht nur in der Richtung
CNC => PC sondern auch umgekehrt PC => CNC.
Also möchte ich es nicht allzu puristisch betrachten, sondern pragmatisch der kritischste Problem von COM Schnittstelle lösen.

Da die Eingabe von z.bsp Koordinaten sich ohne weiteres
mit Delphi konformen Mittel gewährleisten lässt, bleibt
nur die COM Schnittstelle die als thread laufen muss ( da bin ich mit Dir vollkommen einig).
Und die Schnittstelle ist es auch, die mir offenbar alle die Folge-Probleme bereitet(wie KeyPress).

Und es geben prinzipiell nur zwei mögliche Events :
1: Meldungsinhalte die von CNC kommen (sind in globalen
variablen (records) gespeichert(durch RSCOM).
(in der Beilage die globale Var.Deklaration und jetztige EmpfangsProcedur(getblk)als Bsp.)
2: Eingabe der Koordinaten oder Einzelzeichen (Funktionstasten), es wird keine Maus gebraucht.

Schon das alte Programm dürfte nicht stehen bleiben,damals hat man es mit timeouts gelöst, was heute
sicher anders lösbar ist.
Es gibt also auch eine Variante das Ganze mit WinCRT/WinGraph funktionen zu lösen, (also gar nicht OOP),mit Ausnahme von einem Menue braucht es lediglich nur Linien.
Soviel zum gesamt Problem.
Gruss Anton

akurka 12. Mai 2014 14:28

AW: KeyPress unter Form2 funktioniert nicht.
 
Hallo vagtler
Danke für den guten Tipp wegen async32, nach dem erstem Durchsicht ist es das, was ich benötige.
Gruss Anton

Sir Rufo 12. Mai 2014 16:39

AW: KeyPress unter Form2 funktioniert nicht.
 
Unter Delphi 7 sollte
Delphi-Quellcode:
Sleep
eigentlich bekannt sein und sich auch in der Unit
Delphi-Quellcode:
SysUtils
befinden.

Was für einen Fehler bringt der Compiler denn?

Du kannst auch versuchen die Zeile komplett rauszunehmen (ist eh nur eine kleine Bremse für den Thread) ;)

Der Vorteil von OOP (fällt dir mit den Forms eh schon vor die Füße) ist neben Abstraktion und Vererbarkeit auch der klar definierte Kontext und die Möglichkeit Zugriffe zu beschränken (nur lesende Eigenschaften) oder auch zu schützen (Eigenschaften mit Getter und Setter, die per CriticalSection die Zugriffe thread-sicher gestalten) den man bei globalen Variablen nur beschränkt - niemals sicher - und nur mit sehr viel Disziplin hinbekommt.

Ich möchte es dir aber nur schmackhaft machen und nicht aufdrängen.

akurka 12. Mai 2014 17:43

AW: KeyPress unter Form2 funktioniert nicht.
 
Hallo Sir Rufo
Vielen Dank, Du rennst offene Türe ein,
überzeugt von OOP bin ich schon, aber ich muss auch realistich sein, und einen
vernüftigen Kompromiss finden zwischen Gebastel und OOP programmieren.

Ich kann mir vorstellen, dass es einem OOP Spezialist graut, wenn er so etwas
hört.

Habe neben dem Programmieren aber auch noch ganze Menge
andere Hobbys und die wollen auch noch gelebt werden.

Jetzt werde ich zuerst das vom vagtler erwähnte async32 mal testen.
Hast Du vielleicht Erfahrung damit ?

Sonst muss ich mal selber etwas probieren.
Gruss Anton

Sir Rufo 12. Mai 2014 18:11

AW: KeyPress unter Form2 funktioniert nicht.
 
Mir graut es nicht, ich kann es nachfühlen, da ich selber von BASIC, Pascal und dann auf Object-Pascal umgestiegen bin. Es dauert, bis man die Gedankenwege OOP-konform bekommt :)

Nein, Erfahrungen habe ich damit nicht.

akurka 24. Mai 2014 22:24

AW: KeyPress unter Form2 funktioniert nicht.
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sir Rufo

Wir haben miteinandern kürzlich Meinungen ausgetauscht in Zusammenhang mit dem Umschreiben von älteren Pascal Programmen.
Ich habe in letzte Zeit versucht mich ein bisschen in die Materie einzuarbeiten. Wie dem auch so ist, aller Anfang ist schwer.
Darum möchte ich Dich fragen, ob Du bereit wärst, mir ein bisschen unter die Arme zu greifen .
Ich habe versucht Dich privat zu erreichen aber das ist offenbar nicht möglich.
Falls es Dich interessiert ist in der Beilage die Beschreibung
der Gesamtfunktion.
D.h. vor allem bei der Gesamtstruktur ist es sehr schwer ein richtigen Kompromiss zu finden zwischen einerseits reine OOP und
andererseits möglichst wenig Aenderungsaufwand für bestehende (Pascal) Programm Teile.
Und ich denke, wenn am Anfang die Gesamtstruktur nicht stimmt, rächt sich das später.

Für die Bedienung der RS232 gibt es die Komponente "TMS_Asyc32" die Erreignis gesteuert ist.

Ich habe angefangen die einzelne Methoden aus diese Komponente auszutesten (onCTS,OnRX..), das funktioniert soweit.

Je nach Meldungsinhalt sollen dann unterschiedliche Units(Forms) starten, da ist es mir nicht ganz klar wie man es
lösen soll, es darf ja im prinzip keine warteschlaufe geben, oder ?

akurka@bluewin,ch
Mit freundlichen Grüssen
Anton


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 Uhr.
Seite 4 von 4   « Erste     234   

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