Si solo quieres que el MODEM marque un número telefónico, con esto que te paso solucionarías tu problema.... Ten en cuenta que no siempre vas a necesitar que tu código este encapsulado en un componente, muchas veces la solución es mucho mas sencilla!
Código:
program PruebaModem;
{By Delphi.com.ar}
uses
Windows, SysUtils, Dialogs;
var
hCommFile : THandle;
pBuffer : array[0..8] of Char;
cBytesWritten : Cardinal;
begin
{Abre el Puerto COM3}
hCommFile := CreateFile( 'COM3', GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if hCommFile = INVALID_HANDLE_VALUE then
RaiseLastWin32Error
else
Try
{ Escribo en el puerto el comando para que
disque al 113 }
cBytesWritten := 0;
pBuffer := 'ATDT 113';
Win32Check( WriteFile(hCommFile, pBuffer, 8, cBytesWritten, nil) );
ShowMessageFmt( 'Se escribieron %d bytes', [cBytesWritten] );
finally
{Cierra el puerto}
CloseHandle(hCommFile);
end;
end.
Saludos