View Issue Details

IDProjectCategoryView StatusLast Update
0002184JEDI VCL00 JVCL Componentspublic2005-08-28 09:06
ReportergskoczylasAssigned Toobones 
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
PlatformDelphi 7 Ent. + Update Pack 1OSWindows XP ProfessionalOS VersionService Pack 1
Product Version3.00 BETA 2 
Target VersionFixed in Version3.10 
Summary0002184: TJvSpeedBar background is not refreshed
DescriptionComponent TJvSpeedBar does not refresh his background correctly - neither in design mode nor in run-time mode.

Background is partially black, removed buttons are still visible.
Steps To ReproducePut bot TJvSpeedBar and TButton components on form. In "OnClick" event call TSpeedBar1.StartCustomize(0);

In design mode: invoke context menu for TJvSpeedBar and execute "SpeedBar designer".

In run-time mode: click button.
Additional InformationIn version 2.x this component worked correctly.
TagsNo tags attached.

Activities

Nanotonne

2004-09-28 14:49

reporter   ~0005272

Last edited: 2004-09-28 14:50

I confirme too : background it's black, but the problem is visible only at design time with last jcl and jvcl, not at run time, and at design time the moving buttons placement don't remember the relative position of mouse, the mouse is automatically placed at lower corner right ( :-( ) it's normal ??? it's best if is't relative coordinate position i found for moving/(un)placement buttons.

i think it's because TJvBtnControl.Paint draw a void image/glyph (black) but i'm not sure

modifié le : 09-28-04 14:50

user72

2004-10-05 00:02

  ~0005301

Actually, this problem has been present for a long time. If you haven't seen it before, you've just been lucky. As long as it doesn't manifest itself at run-time, it will get very low priority

gskoczylas

2004-10-05 00:33

reporter   ~0005306

In JVCL version 2.x this problem was only in design-time.

In JVCL 3 this problem occurs both in design-time and in run-time. For me it's major problem.

user72

2004-10-05 00:55

  ~0005307

Last edited: 2004-10-12 04:22

> In JVCL 3 this problem occurs
> both in design-time and in run-time.
Look at Nanotonnes reply: "the problem is visible only at design time with last jcl and jvcl".

Please get the latest jcl and jvcl and try again. Post again if it still persists.

I am not able to reproduce this (at run-time)

edited on: 10-12-04 04:22

obones

2004-11-19 01:31

administrator   ~0005673

Please try with the latest zip files and tell us if the problem is fixed. These files are available here:

http://jvcl.sf.net/daily/
http://jcl.sf.net/daily/

If we don't hear from you in the next 7 days, we will consider this issue fixed.

gskoczylas

2004-11-22 15:10

reporter   ~0005690

In design-time latest version of TSpeedBar is working a bit better (but still not correct).

In run-time it's working better, but still not correct. In this mode, when button is moved to new position, button's image is left in previous location.

I have installed the newest versions of JCL and JVCL (Nov 20, 2004).

2004-11-22 15:11

 

SpeedBar.JPG (16,972 bytes)
SpeedBar.JPG (16,972 bytes)

user72

2004-11-27 14:33

  ~0005733

Try changing (JvSpeedbar.pas):

procedure TJvSpeedBarButton.VisibleChanged;
begin
  if Visible then
  begin
    ControlStyle := ControlStyle - [csNoDesignVisible];
    Invalidate;
  end
  else
    ControlStyle := ControlStyle + [csNoDesignVisible];
  inherited;
end;

REcompile the RT package. Does it work better?

gskoczylas

2004-11-27 17:27

reporter   ~0005734

Now component is working correctly in design-time.

In run-time after button is moved his image is visible in current and all previous positions.

I have added to your code additional instructions (marked as "GSk"):
procedure TJvCustomSpeedButton.VisibleChanged;
begin
  if Visible then
  begin
    ControlStyle := ControlStyle - [csNoDesignVisible];
    Invalidate;
  end
  else
    ControlStyle := ControlStyle + [csNoDesignVisible];
  if Parent <> nil then // GSk
    Parent.Invalidate; // GSk
  inherited;
end;

With this additional instructions component is working in run-time a bit better but still not perfect.

user72

2004-11-28 04:03

  ~0005735

> In run-time after button is moved his
> image is visible in current and all previous positions.
I can't duplicate this. What version of Delphi are you using?

gskoczylas

2004-11-28 04:44

reporter   ~0005736

Delphi Enterprise Version 7.1 (Build 8.1) -- with Update Pack 1
Windows XP Professional + SP2

user72

2004-11-28 05:03

  ~0005737

> Windows XP Professional + SP2
This could be the difference. I am using W2k and have tested the new code with D5-D7. Anyone else using XP that can verify that it doesn't work? Anyone else using W2k that can verify that it does work?

user72

2004-11-28 12:56

  ~0005747

Try this:
procedure TJvSpeedBar.Paint;
...
    inherited Paint;
    Canvas.Brush.Color := Color;
    {$IFDEF JVCLThemesEnabled}
    if ThemeServices.ThemesEnabled and ParentBackground then
    begin
      Canvas.Brush.Color := Parent.Brush.Color;
      DrawThemedBackground(Self, Canvas, Rect);
    end
    else
    {$ENDIF JVCLThemesEnabled}
      Canvas.FillRect(Rect);

gskoczylas

2004-11-29 12:37

reporter   ~0005757

Last edited: 2004-11-29 12:38

In design-time component is still working perfectly.

In run-time behavior is following:
When I start to move buton I see image of that button both in starting position and in current position. When I drop button on speedbar I see only one button in dropped position. It is not perfect. In design-time I always see only one button.

Unfortunately when button is removed (moved out of speedbar) then button's image is still visible in his last position.

user72

2004-11-29 12:45

  ~0005758

Is JvSppedbar.ParentBackground true? If it is, try setting it to false and check if it makes any difference. I am suspecting this is an XP problem.

gskoczylas

2004-11-29 17:17

reporter   ~0005761

SpeedBar.ParentBackgroud is True. After changing them to False and recompiling my application component's behaviour is still the same (incorrect).

May be it is XP problem but... in design-time component is working perfect. Only in run-time it is incorrect.

obones

2005-08-10 03:38

administrator   ~0007772

Is this still here with the latest code ?

obones

2005-08-28 09:06

administrator   ~0007866

No answers, considering this fixed.
Please post a new issue, child of this one, should the problem still be there.

Issue History

Date Modified Username Field Change
2004-09-28 12:29 gskoczylas New Issue
2004-09-28 14:49 Nanotonne Note Added: 0005272
2004-09-28 14:50 Nanotonne Note Edited: 0005272
2004-10-05 00:02 user72 Note Added: 0005301
2004-10-05 00:02 user72 Status new => acknowledged
2004-10-05 00:33 gskoczylas Note Added: 0005306
2004-10-05 00:55 user72 Note Added: 0005307
2004-10-12 04:22 user72 Note Edited: 0005307
2004-11-19 01:31 obones Note Added: 0005673
2004-11-19 01:31 obones Status acknowledged => feedback
2004-11-22 15:10 gskoczylas Note Added: 0005690
2004-11-22 15:11 gskoczylas File Added: SpeedBar.JPG
2004-11-27 14:33 user72 Note Added: 0005733
2004-11-27 17:27 gskoczylas Note Added: 0005734
2004-11-28 04:03 user72 Note Added: 0005735
2004-11-28 04:44 gskoczylas Note Added: 0005736
2004-11-28 05:03 user72 Note Added: 0005737
2004-11-28 12:56 user72 Note Added: 0005747
2004-11-29 12:37 gskoczylas Note Added: 0005757
2004-11-29 12:38 gskoczylas Note Edited: 0005757
2004-11-29 12:45 user72 Note Added: 0005758
2004-11-29 17:17 gskoczylas Note Added: 0005761
2005-08-10 03:38 obones Note Added: 0007772
2005-08-28 09:06 obones Status feedback => resolved
2005-08-28 09:06 obones Resolution open => fixed
2005-08-28 09:06 obones Assigned To => obones
2005-08-28 09:06 obones Note Added: 0007866