📄 jvqwizardroutemaplist.pas
字号:
else
if not Pages[PageIndex].Enabled then
ACanvas.Font.Color := clGrayText;
ACanvas.Brush.Color := ItemColor;
ACanvas.Pen.Color := Color;
DefaultDraw := True;
if Assigned(FOnDrawItem) then
FOnDrawItem(Self, ACanvas, ARect, MousePos, PageIndex, DefaultDraw);
if DefaultDraw then
begin
case ItemText of
itCaption:
S := Pages[PageIndex].Caption;
itTitle:
S := Pages[PageIndex].Title.Text;
itSubtitle:
S := Pages[PageIndex].Subtitle.Text;
end;
if not TextOnly then
begin
if ItemColor = clNone then
ACanvas.Brush.Style := bsClear;
if Rounded then
ACanvas.RoundRect(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom, Curvature, Curvature)
else
ACanvas.Rectangle(ARect);
if ShowImages and Assigned(Wizard) and Assigned(Wizard.HeaderImages) then
begin
ATop := ((ARect.Bottom - ARect.Top) - Wizard.HeaderImages.Height) div 2;
BkColor := ACanvas.Brush.Color;
case Alignment of
taLeftJustify:
begin
Wizard.HeaderImages.Draw(ACanvas, ARect.Left + 4, ARect.Top + ATop, Pages[PageIndex].Header.ImageIndex, itImage, Pages[PageIndex].Enabled);
Inc(ARect.Left, Wizard.HeaderImages.Width + 4);
end;
taRightJustify:
begin
Wizard.HeaderImages.Draw(ACanvas, ARect.Right - Wizard.HeaderImages.Width - 4, ARect.Top + ATop,
Pages[PageIndex].Header.ImageIndex, itImage, Pages[PageIndex].Enabled);
Dec(ARect.Right, Wizard.HeaderImages.Width + 4);
end;
taCenter:
begin
ALeft := ((ARect.Right - ARect.Left) - Wizard.HeaderImages.Width) div 2;
Inc(ARect.Top, 4);
Wizard.HeaderImages.Draw(ACanvas, ARect.Left + ALeft, ARect.Top + 8,
Pages[PageIndex].Header.ImageIndex, itImage, Pages[PageIndex].Enabled);
Inc(ARect.Top, Wizard.HeaderImages.Height);
// if ItemText = itSubtitle then
// Inc(ARect.Top, 16);
end;
end;
if not Pages[PageIndex].Enabled then
begin
// (p3) TImageList changes the canvas colors when drawing disabled images, so we reset them explicitly
SetBkColor(ACanvas.Handle, BkColor);
SetTextColor(ACanvas.Handle, ColorToRGB(clGrayText));
end;
end;
end
else
ACanvas.Brush.Style := bsClear;
case Alignment of
taLeftJustify:
Inc(ARect.Left, TextOffset);
taRightJustify:
Dec(ARect.Right, TextOffset);
taCenter:
InflateRect(ARect, -TextOffset div 2, -TextOffset div 2);
end;
if ItemText = itSubtitle then
begin
Inc(ARect.Top, TextOffset);
InflateRect(ARect, -TextOffset, 0);
end;
if (ItemText <> itNone) and ((ARect.Bottom - ARect.Top) > abs(ACanvas.Font.Height)) then
DrawText(ACanvas.Handle, PChar(S), Length(S), ARect,
cAlignment[Alignment] or cWordWrap[ItemText = itSubtitle] or DT_VCENTER or DT_EDITCONTROL or DT_END_ELLIPSIS);
if not TextOnly and HotTrack and (HotTrackBorder > 0) and PtInRect(AOrigRect, MousePos) then
begin
ACanvas.Brush.Style := bsClear;
ACanvas.Pen.Color := HotTrackFont.Color;
ACanvas.Pen.Width := HotTrackBorder;
if Rounded then
with AOrigRect do
ACanvas.RoundRect(Left, Top, Right, Bottom, Curvature, Curvature)
else
ACanvas.Rectangle(AOrigRect);
ACanvas.Brush.Style := bsSolid;
ACanvas.Pen.Width := 1;
end;
end;
finally
ACanvas.Unlock;
end;
end;
procedure TJvWizardRouteMapList.SetHorzOffset(const Value: Integer);
begin
if FHorzOffset <> Value then
begin
FHorzOffset := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetItemHeight(const Value: Integer);
begin
if FItemHeight <> Value then
begin
FItemHeight := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetVertOffset(const Value: Integer);
begin
if FVertOffset <> Value then
begin
FVertOffset := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetIncludeDisabled(const Value: Boolean);
begin
if FIncludeDisabled <> Value then
begin
FIncludeDisabled := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetActiveFont(const Value: TFont);
begin
FActiveFont.Assign(Value);
end;
procedure TJvWizardRouteMapList.SetHotTrackFont(const Value: TFont);
begin
FHotTrackFont.Assign(Value);
end;
procedure TJvWizardRouteMapList.DoFontChange(Sender: TObject);
begin
Invalidate;
end;
procedure TJvWizardRouteMapList.SetAlignment(const Value: TAlignment);
begin
if FAlignment <> Value then
begin
FAlignment := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetTextOffset(const Value: Integer);
begin
if FTextOffset <> Value then
begin
FTextOffset := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetShowImages(const Value: Boolean);
begin
if FShowImages <> Value then
begin
FShowImages := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetItemColor(const Value: TColor);
begin
if FItemColor <> Value then
begin
FItemColor := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetRounded(const Value: Boolean);
begin
if FRounded <> Value then
begin
FRounded := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetItemText(const Value: TRouteMapListItemText);
begin
if FItemText <> Value then
begin
FItemText := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetCurvature(const Value: Integer);
begin
if FCurvature <> Value then
begin
FCurvature := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetActiveFontOptions(const Value: TJvTrackFontOptions);
begin
if FActiveFontOptions <> Value then
begin
FActiveFontOptions := Value;
UpdateTrackFont(ActiveFont, Font, FActiveFontOptions);
end;
end;
procedure TJvWizardRouteMapList.SetHotTrackFontOptions(const Value: TJvTrackFontOptions);
begin
if FHotTrackFontOptions <> Value then
begin
FHotTrackFontOptions := Value;
UpdateTrackFont(HotTrackFont, Font, FHotTrackFontOptions);
end;
end;
procedure TJvWizardRouteMapList.SetBorderColor(Value: TColor);
begin
if Value <> FBorderColor then
begin
FBorderColor := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.SetTextOnly(const Value: Boolean);
begin
if Value <> FTextOnly then
begin
FTextOnly := Value;
Invalidate;
end;
end;
procedure TJvWizardRouteMapList.CursorChanged;
begin
inherited CursorChanged;
if (Cursor <> FHotTrackCursor) and (Cursor <> FOldCursor) then
FOldCursor := Cursor;
end;
procedure TJvWizardRouteMapList.FontChanged;
begin
inherited FontChanged;
UpdateTrackFont(HotTrackFont, Font, FHotTrackFontOptions);
UpdateTrackFont(ActiveFont, Font, FActiveFontOptions);
end;
{$IFDEF UNITVERSIONING}
const
UnitVersioning: TUnitVersionInfo = (
RCSfile: '$RCSfile: JvQWizardRouteMapList.pas,v $';
Revision: '$Revision: 1.20 $';
Date: '$Date: 2005/02/06 14:06:32 $';
LogPath: 'JVCL\run'
);
initialization
RegisterUnitVersion(HInstance, UnitVersioning);
finalization
UnregisterUnitVersion(HInstance);
{$ENDIF UNITVERSIONING}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -