Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/VCL/Standard Controls/TCheckBox    [ Add a report in this area ]  
Report #:  7749   Status: Closed
checkbox on panel with XPManifest loses focus border
Project:  Delphi Build #:  4.453
Version:    7.0 Submitted By:   Eamonn Mulvihill
Report Type:  Minor failure / Design problem Date Reported:  3/27/2004 12:48:57 PM
Severity:    Serious / Highly visible problem Last Updated: 1/6/2008 3:35:57 PM
Platform:    All versions Internal Tracking #:  
Resolution: Cannot Reproduce (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: (1 Total Rating)
4.00 out of 5
Total Votes: None
Description
with xt themes enabled, a checkbox on a panel will not show it's dotted border line when gaining focus via the keyboard.

checkboxes directly on a form will show their focus rectangles as you tab around.
Steps to Reproduce:
Start a new app
drop XPMenifest1 on Form1
drop Panel1 on Form1
drop CheckBox1 on Form1
drop CheckBox2 on Panel1
run the app
press TAB many times.

you will notice that CheckBox1 shows a focus rectangle but CheckBox2 does not.
Workarounds
None
Attachment
None
Comments

Eamonn Mulvihill at 3/27/2004 12:54:27 PM -
the problem is with TPanel not TCheckbox

It can be fixed in TPanel.Paint by setting brush.styl to bsSolid and then selecting the brush ito the DC.

to prove this derive a new class from TPanel or TCustomPanel
override the Paint method so that you have this:

TNewPanel.Paint;
//DrawText in inherited paint method seems to destroy the brush that
//will later be used to draw the dotted outline around the checkbox?
begin
inherited;
with Canvas do
    begin;
    brush.Style := bsSolid;
    SelectObject(Handle, Brush.Handle);
    end;
end;

you will find that checkboxes placed on TNewPanel work fine.

I suggest this code be added at the end of TPanel.paint.  It has no effect when TXPManifest is not used.

HTH

Server Response from: ETNACODE01