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