Search code examples
delphidelphi-6tpanel

make a Delphi TPanel caption wrap


Is there a way to wrap the text in a TPanel.Caption in Delphi (in my case Delphi 6)?


Solution

  • Not by default, I'm afraid. As you can see from the sourcecode for TPanel, the text is drawn by the DrawText( )-windows API:

    procedure TCustomPanel.Paint;
    {snip}
    begin
      {snip}
      Flags := DT_EXPANDTABS or DT_SINGLELINE or
        VerticalAlignments[FVerticalAlignment] or Alignments[FAlignment];
      Flags := DrawTextBiDiModeFlags(Flags);
      DrawText(Handle, PChar(Caption), -1, Rect, Flags);
    end;
    

    You can either derive and override the Paint-method, or you could just use a label instead.