TApxComPort.OnTriggerModemStatus

TApxComPort

property OnTriggerModemStatus : TNotifyEvent

Defines an event handler that is called whenever the dispatcher detects that modem status signals have changed.

This event handler is called in a subset of the cases where the more general OnTriggerStatus handler is called. OnTriggerStatus is called first when a modem status change is detected, even if an OnTriggerModemStatus handler is installed.

The parameter passed to the TNotifyEvent is the TApxComPort component that generated the trigger. The TApxComPort's modem status properties can be checked by the event handler to determine the exact reason for the event. No TriggerHandle is passed to the event handler, so it is not possible to distinguish between multiple modem status triggers in this event handler. If you need to do so, use the OnTriggerStatus event instead.

Note that status triggers are not self-restarting. The event handler must call SetStatusTrigger again to reactivate the trigger as needed.

The following example adds and activates a modem status trigger for ring indicators and changes in DSR. Modem status changes are handled using an OnTriggerModemStatus event handler.

TrigMS : Word;
...
TrigMS := ApxComPort.AddStatusTrigger(stModem);
ApxComPort.SetStatusTrigger(TrigMS, msRingDelta or 
                            msDSRDelta, True);
...
procedure TMyForm.ApxComPortTriggerModemStatus(CP : TObject);
begin
  if ApxComPort.DeltaRI then
    ...handle ring
  if ApxComPort.DeltaDSR then
    ...handle change in DSR
  {reactivate trigger}
  ApxComPort.SetStatusTrigger(TrigMS, msRingDelta or 
                              msDSRDelta, True);
end;

See also: CTS, DCD, DeltaCTS, DeltaDCD, DeltaDSR, DeltaRI, DSR, ModemStatus, RI