Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 209143
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T17:53:20+00:00 2026-05-11T17:53:20+00:00

I need to draw on a TPanel, ideally directly so I don’t have another

  • 0

I need to draw on a TPanel, ideally directly so I don’t have another component on top of it getting in the way of mousevent-event trapping (I want to draw a little “size-grip” on it). How should I go about doing this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-11T17:53:20+00:00Added an answer on May 11, 2026 at 5:53 pm

    To really do it right, you should probably write a descendant class. Override the Paint method to draw the sizing grip, and override the MouseDown, MouseUp, and MouseMove methods to add resizing functionality to the control.

    I think that’s a better solution than trying to draw onto a TPanel in your application code for a couple of reasons:

    1. The Canvas property is protected in TPanel, so you have no access to it from outside the class. You can get around that with type-casting, but that’s cheating.
    2. The “resizability” sounds more like a feature of the panel than a feature of the application, so put it in code for the panel control, not in your application’s main code.

    Here’s something to get you started:

    type
      TSizablePanel = class(TPanel)
      private
        FDragOrigin: TPoint;
        FSizeRect: TRect;
      protected
        procedure Paint; override;
        procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
          X, Y: Integer); override;
        procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
        procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
          X, Y: Integer); override;
      end;
    
    procedure TSizeablePanel.Paint;
    begin
      inherited;
      // Draw a sizing grip on the Canvas property
      // There's a size-grip glyph in the Marlett font,
      // so try the Canvas.TextOut method in combination
      // with the Canvas.Font property.
    end;
    
    procedure TSizeablePanel.MouseDown;
    begin
      if (Button = mbLeft) and (Shift = []) 
          and PtInRect(FSizeRect, Point(X, Y)) then begin
        FDragOrigin := Point(X, Y);
        // Need to capture mouse events even if the mouse
        // leaves the control. See also: ReleaseCapture.
        SetCapture(Handle);
      end else inherited;
    end;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I need to draw a line in UITableviewcell. There is any possible way to
I need to draw the content of a component and all its subcomponents in
I need to draw some simple network topology charts, suggestions of some good tools
I need an example algorithm that will draw pixels one at a time on
I need a 2d political map of the world on which I will draw
The ASP page gets data uses that to draw a graph, I then need
Need a way to allow sorting except for last item with in a list.
need ask you about some help. I have web app running in Net 2.0.
I need draw with QPainter , but when I try to do it not
I need to draw some chemical laboratory equiment setups. It will include Erlenmeyer flask,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.