View Issue Details

IDProjectCategoryView StatusLast Update
0005822JEDI VCL00 JVCL Componentspublic2013-12-13 11:21
ReporterMestophAssigned Toobones 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionsuspended 
Product VersionDaily / GIT 
Target VersionFixed in Version 
Summary0005822: Two bug fix with TJVWizard
Descriptionfirst:

Can't have a multi-line title with a multi-line multiline subtitle.

second:

The header image is drawn after the divider and the divider does not take into account the total width of the page.
Additional InformationTo fix :

In the TJvWizardPageHeader class :

Find :
  FHeight: Integer;

Replace by :

  FHeightTitle: Integer;
  FHeightSubtitle : Integer;

Find :

  procedure SetHeight(Value: Integer);

Replace by :

  procedure SetHeightTitle(Value: Integer);
  procedure SetHeightSubtitle(Value: Integer);

Remove :

  property Height: Integer read FHeight write SetHeight default 70;

Replace by :

  property HeightTitle: Integer read FHeightTitle write SetHeightTitle default 25;
  property HeightSubtitle: Integer read FHeightSubtitle write SetHeightSubtitle default 35;

Remove :

procedure TJvWizardPageHeader.SetHeight(Value: Integer);
begin
  if FHeight <> Value then
  begin
    FHeight := Value;
    DoChange;
  end;
end;

Replace by :

procedure TKWizardPageHeader.SetHeightTitle(Value: Integer);
begin
  if FHeightTitle <> Value then
  begin
    FHeightTitle := Value;
    DoChange;
  end;
end;

procedure TKWizardPageHeader.SetHeightSubtitle(Value: Integer);
begin
  if FHeightSubtitle <> Value then
  begin
    FHeightSubtitle := Value;
    DoChange;
  end;
end;

Remove :

procedure TJvWizardPageHeader.PaintTo(ACanvas: TCanvas; var ARect: TRect);
var
  R, ImageRect: TRect;
  AImages: TCustomImageList;
begin
  if Visible then
  begin
    R := ARect;
    R.Bottom := R.Top + FHeight;
    with ACanvas do
    begin
      Brush.Style := bsSolid;
      Brush.Color := Color;
      FillRect(R);
    end;
    if Assigned(WizardPage) then
    begin
      { Show Header Divider }
      if {(csDesigning in WizardPage.ComponentState) or} FShowDivider then
        JvWizardDrawBorderEdges(ACanvas, R, fsGroove, [beBottom]);

      { Draw Header Image first }
      if Assigned(WizardPage.Wizard) then
      begin
        AImages := WizardPage.Wizard.HeaderImages;
        if Assigned(AImages) and (FImageIndex >= 0) and
          (FImageIndex < AImages.Count) then
        begin
          ImageRect := GetImageRect(AImages, R);
          { R is the area where the title and subtitle paint to. }
          AImages.Draw(ACanvas, ImageRect.Left, ImageRect.Top, FImageIndex , True );
        end;
      end;
      { Draw Title }
      FTitle.PaintTo(ACanvas, R);
      { Draw Subtitle }
      FSubtitle.PaintTo(ACanvas, R);
    end;
    Inc(ARect.Top, FHeight);
  end;
end;

Replace by :

procedure TKWizardPageHeader.PaintTo(ACanvas: TCanvas; var ARect: TRect);
var
  R, ImageRect: TRect;
  AImages: TCustomImageList;
begin
  if Visible then
  begin
    R := ARect;
    R.Bottom := R.Top + FHeightTitle + FHeightSubTitle;
    with ACanvas do
    begin
      Brush.Style := bsSolid;
      Brush.Color := Color;
      FillRect(R);
    end;
    if Assigned(WizardPage) then
    begin
      { YW - Draw Header Image first }
      if Assigned(WizardPage.Wizard) then
      begin
        AImages := WizardPage.Wizard.HeaderImages;
        if Assigned(AImages) and (FImageIndex >= 0) and
          (FImageIndex < AImages.Count) then
        begin
          ImageRect := GetImageRect(AImages, R);
          { YW - R is the area where the title and subtitle paint to. }
          AImages.Draw(ACanvas, ImageRect.Left, ImageRect.Top, FImageIndex, True);
        end;
      end;
      { YW - Show Header Divider }
      R.Right := ARect.Right;
      if {(csDesigning in WizardPage.ComponentState) or} FShowDivider then
      begin
        KDrawBorderEdges(ACanvas, R, fsGroove, [beBottom]);
      end;
      { YW - Draw Title }
       R := ARect;
        R.Bottom := R.Top + FHeightTitle;
      FTitle.PaintTo(ACanvas, R);
      { YW - Draw Subtitle }
        R.Top := R.Bottom;
        R.Bottom := R.Top + FHeightSubTitle;

      FSubtitle.PaintTo(ACanvas, R);
    end;
    Inc(ARect.Top, FHeightTitle + FHeightSubTitle);
  end;
end;








TagsNo tags attached.

Activities

obones

2012-06-11 17:22

administrator   ~0019839

Please provide the zipped sources of a sample application showing this.

obones

2013-12-13 11:21

administrator   ~0020766

No news, suspending the issue

Issue History

Date Modified Username Field Change
2012-03-03 23:45 Mestoph New Issue
2012-06-11 17:22 obones Note Added: 0019839
2012-06-11 17:22 obones Status new => feedback
2013-12-13 11:21 obones Note Added: 0020766
2013-12-13 11:21 obones Status feedback => resolved
2013-12-13 11:21 obones Resolution open => suspended
2013-12-13 11:21 obones Assigned To => obones