Reflection Desktop VBA Guide
HowTos / Change Themes to Control Look and Feel
In This Topic
Change Themes to Control Look and Feel
In This Topic

You can use a macro to change the look and feel of a session. You can also programmatically change display elements such as the screen color, font, and cursor. Some examples of changing these elements include:

This sample shows how to load a theme and change the cursor, font, and background color of the session.

If you prefer to run macros in pre-configured sessions instead of creating your own sessions, you can download the VBA Sample Sessions and open the change-themes.rd3x (IBM) and change-themes.rdox files (Open Systems). The download package contains everything you need to run the macros in these files. See Download the VBA Sample Sessions.

To run this sample

  1. In a terminal session, open the Visual Basic Editor and insert a module in the session project folder.
  2. Copy the code into the module code window and then press F5 to run the macro.
    This article contains tabbed content that is specific to each terminal type. Be sure the tab for your Which Terminal Type are you Using? is selected.

    Change colors, fonts, and cursor
    Copy Code
    Public Sub ChangeLookAndFeel()
     
        'Declare and set a Themefont object
        Dim font As Attachmate_Reflection_Objects_Emulation_IbmHosts.ThemeFont
        Set font = ThisIbmTerminal.Theme.font
                                   
      
        'Declare and set a Themecolor object
        Dim color As Attachmate_Reflection_Objects_Emulation_IbmHosts.ThemeColor
        Set color = ThisIbmTerminal.Theme.ThemeColor
    
        'Set AutofontSize to false to allow resizing of font
        font.AutoFontSize = False
        font.FONTSIZE = 10
      
        'Set the cursorShape
        cursor.CursorShape = CursorShapeOption_Underline
    
        'Make the ruler line visible and set the type to crosshair
        cursor.RulerCursorVisible = True
        cursor.RulerCursorType = RulerCursorTypeOption_Crosshair
        'Set the screen Background color
        color.BackgroundColor = RGB(0, 0, 0)
     
        'Save the changes in a new theme to prevent Reflection from requesting to save new theme
        ThisIbmTerminal.Theme.SaveAs (Environ$("USERPROFILE") & "\Documents\Micro Focus\Reflection\Themes\myTheme.themex")
        
    End Sub
    

Concepts

The Theme object contains the ThemeFont, ThemeColor, and ThemeCursor objects. You get access to these objects through the Theme object. 

Another approach for changing theme properties is to load an entire theme:

Load a theme
Copy Code
'Load a theme
ThisIbmTerminal.Theme.Load (Environ$("USERPROFILE") & "\Documents\Micro Focus\Reflection\Themes\myTheme.themex")

You can run these macros automatically when certain screens are recognized or when specific events occur. For example, after a user selects a program, you could indicate which program is running by changing the background color on the first screen of the program. (See Controlling Macro Execution and Using Reflection Events.)

See Also