Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Programmkontrolle
BL - Di 26.07.11 08:03
Titel: Programmkontrolle
Moin,
ich bin in Delphi nicht mehr so drin, daher mal eine Blödenfrage:
Ich habe ein Form, darauf ein ComPort und eine Taste. Wenn die Taste geklickt wird, soll das ComPort was senden, tut es auch. Jetzt will ich aber eine Bestätigung empfangen. Das heißt, ich muß was senden, die Bestätigung abwarten und dann das nächste senden.
Also gehe ich in meine On-Klick-Ereignis-Routine zu Button1 und sende. Nun ist die Frage, wenn ich gerade in dieser Ereignisroutine bin, kann ich da das andere Ereignis OnRxChar des ComPorts abwarten?
In Controller-Strukturen gedacht habe ich ja einen Interrupt vom Tastendruck und will auf den nächsten Interrupt des Empfanges warten. Wenn ich keine ineinander verschachtelbaren Interrupts habe, gehe ich nach dem ersten in die Hauptschleife zurück und warte den zweiten ab.
Delphi aber hat doch keine Hauptschleife.
BL
Tranx - Di 26.07.11 09:31
Wenn ich Recht sehe, willst Du den Com-Port auf empfange Bytes abfragen. Was wäre denn, wenn Du einen Timer nimmst, der in seinem OnTimer-Ereignis diesen Comport abfragt und dann entsprechende Aktionen veranlasst? Ist nur eine Idee. Ich selber habe Com-Ports bisher noch nicht programmiert.
Niko S. - Di 26.07.11 10:39
Application.OnIdle wäre glaub ich das stichwort.
Xion - Di 26.07.11 10:52
BL hat folgendes geschrieben : |
Nun ist die Frage, wenn ich gerade in dieser Ereignisroutine bin, kann ich da das andere Ereignis OnRxChar des ComPorts abwarten?
In Controller-Strukturen gedacht habe ich ja einen Interrupt vom Tastendruck und will auf den nächsten Interrupt des Empfanges warten. Wenn ich keine ineinander verschachtelbaren Interrupts habe, gehe ich nach dem ersten in die Hauptschleife zurück und warte den zweiten ab. |
Irgendwo hat Delphi sicher auch eine Programmschleife, so müssen z.B. die messages ausgelesen werden (ButtonClick).
Solange du kein Sleep ausführst, wird das Ereignis OnRxChar auch eintreffen. Das ist ja gerade der Vorteil an den Ereignissen, dass du nicht zyklisch abfragen musst, da das jemand andres für dich tut (Delphi, Interrupts).
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!