RAD Studio |  |

Adding Scroll Bars at Runtime
See Also
Collapse All

Rich edit and memo components can contain horizontal or vertical scroll bars, or both, as needed. When word wrapping is enabled, the component needs only a vertical scroll bar. If the user turns off word wrapping, the component might also need a horizontal scroll bar, since text is not limited by the right side of the editor.

To add scroll bars at runtime:

1. Determine whether the text might exceed the right margin. In most cases, this means checking whether word wrapping is enabled. You might also check whether any text lines actually exceed the width of the control.
2. Set the rich edit or memo component's ScrollBars property to include or exclude scroll bars.

The following example attaches an OnClick event handler to a CharacterWordWrap menu item.
Copy Code

    procedure TForm.WordWrap1Click(Sender: TObject);
    begin
      with Editor do
      begin
        WordWrap := not WordWrap;  { toggle word wrapping }
        if WordWrap then
          ScrollBars := ssVertical  { wrapped requires only vertical }
        else
          ScrollBars := ssBoth;  { unwrapped might need both }
          WordWrap1.Checked := WordWrap;  { check menu item to match property }
      end;
    end;

Copy Code

    void __fastcall TForm::WordWrap1Click(TObject *Sender)
    {
      Editor->WordWrap = !(Editor->WordWrap);   // toggle word wrapping
      if (Editor->WordWrap)
        Editor->ScrollBars = ssVertical;        // wrapped requires only vertical
      else
        Editor->ScrollBars = ssBoth;            // unwrapped can need both
      WordWrap1->Checked = Editor->WordWrap;    // check menu item to match property
    }

The rich edit and memo components handle their scroll bars in a slightly different way. The rich edit component can hide its scroll bars if the text fits inside the bounds of the component. The memo always shows scroll bars if they are enabled.

See Also

TMemo

TRichEdit

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!