After reading
craig.cmehil3/blog .
----
----
CLASS cl_speaker DEFINITION
INHERITING FROM cl_gui_control .
PUBLIC SECTION .
METHODS:
constructor
IMPORTING
value(shellstyle) TYPE i OPTIONAL
value(disp_mode) TYPE i OPTIONAL
value(life_time) TYPE i OPTIONAL
value(name) TYPE string OPTIONAL
EXCEPTIONS
cntl_error
cntl_install_error .
METHODS:
speak
IMPORTING
wf_string TYPE any OPTIONAL .
ENDCLASS . "cl_speaker DEFINITIO
DATA: speaker TYPE REF TO cl_speaker .
********implementation
CLASS cl_speaker IMPLEMENTATION .
METHOD constructor.
DATA: ctrl_name(80) TYPE c ,
wf_clsid(100) TYPE c .
IF NOT cl_gui_object=>activex IS INITIAL .
wf_clsid = '{EEE78591-FE22-11D0-8BEF-0060081841DE}' .
ELSE .
RAISE cntl_error .
ENDIF .
CALL METHOD super->constructor
EXPORTING
clsid = wf_clsid
shellstyle = shellstyle
lifetime = life_time
name = name
EXCEPTIONS
cntl_system_error = 1
OTHERS = 2 .
CASE sy-subrc .
WHEN 1 .
RAISE cntl_install_error .
WHEN 2 .
RAISE cntl_error .
ENDCASE .
CALL METHOD cl_gui_cfw=>subscribe
EXPORTING
ref = me
shellid = me->h_control-shellid
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0 .
RAISE cntl_error .
ENDIF .
ENDMETHOD . "constructor
METHOD speak .
CALL METHOD me->call_method
EXPORTING
method = 'Speak'
p1 = wf_string
p_count = 1.
ENDMETHOD . "speak
ENDCLASS . "cl_speaker IMPLEMENTATION
INITIALIZATION .
CONCATENATE ICON_VOICE_OUTPUT 'Speak' INTO sscrfields-functxt_01 .
AT SELECTION-SCREEN OUTPUT .
IF speaker IS INITIAL.
CREATE OBJECT speaker .
ENDIF.
AT SELECTION-SCREEN .
IF sscrfields-ucomm EQ 'FC01' .
IF wf_t IS INITIAL .
MOVE: 'Enter something to say in selection screen field' TO wf_t .
ENDIF .
CALL METHOD speaker->speak
EXPORTING
wf_string = wf_t.
ENDIF .
START-OF-SELECTION .