📄 jvqwizard.pas
字号:
Width := ciButtonWidth;
Alignment := alLeft;
end;
procedure TJvWizardHelpButton.Click; // Added by Theodore, Modified by Yu Wei
var
ID: THelpContext;
begin
ID := 0;
if not (csDesigning in ComponentState) then
begin
if Assigned(FWizard) and Assigned(FWizard.ActivePage) then
begin
if Assigned(FWizard.ActivePage.OnHelpButtonClick) then // MF
begin
inherited Click;
Exit;
end;
ID := FWizard.ActivePage.HelpContext;
end
else
ID := GetParentForm(Self).HelpContext;
end;
if ID <> 0 then
begin
Application.ContextHelp(ID);
end;
end;
procedure TJvWizardHelpButton.ButtonClick(Page: TJvWizardCustomPage; var Stop: Boolean);
begin
if Assigned(Page.FOnHelpButtonClick) then
Page.FOnHelpButtonClick(Page, Stop);
end;
//=== { TJvWizardNavigateButton } ============================================
function TJvWizardNavigateButton.GetCaption: string;
begin
if Assigned(FControl) then
Result := FControl.Caption
else
Result := '';
end;
function TJvWizardNavigateButton.GetGlyph: TBitmap;
begin
if Assigned(FControl) then
Result := FControl.Glyph
else
Result := nil;
end;
function TJvWizardNavigateButton.GetLayout: TButtonLayout;
begin
if Assigned(FControl) then
Result := FControl.Layout
else
Result := blGlyphLeft;
end;
function TJvWizardNavigateButton.GetNumGlyphs: Integer;
begin
if Assigned(FControl) then
Result := FControl.NumGlyphs
else
Result := 0;
end;
procedure TJvWizardNavigateButton.SetCaption(const Value: string);
begin
if Assigned(FControl) then
begin
FControl.Caption := Value;
end;
end;
procedure TJvWizardNavigateButton.SetGlyph(const Value: TBitmap);
begin
if Assigned(FControl) then
FControl.Glyph := Value;
end;
procedure TJvWizardNavigateButton.SetNumGlyphs(const Value: Integer);
begin
if Assigned(FControl) then
FControl.NumGlyphs := Value;
end;
procedure TJvWizardNavigateButton.SetLayout(const Value: TButtonLayout);
begin
if Assigned(FControl) then
FControl.Layout := Value;
end;
function TJvWizardNavigateButton.GetModalResult: TModalResult;
begin
if Assigned(FControl) then
Result := FControl.ModalResult
else
Result := mrNone;
end;
procedure TJvWizardNavigateButton.SetModalResult(const Value: TModalResult);
begin
if Assigned(FControl) then
FControl.ModalResult := Value;
end;
function TJvWizardNavigateButton.GetButtonWidth: Integer;
begin
if Assigned(FControl) then
Result := FControl.Width
else
Result := 0;
end;
procedure TJvWizardNavigateButton.SetButtonWidth(const Value: Integer);
begin
if Assigned(FControl) and (FControl.Width <> Value) then
begin
FControl.Width := Value;
if Assigned(FControl.FWizard) then
FControl.FWizard.RepositionButtons;
end;
end;
//=== { TJvWizardRouteMapControl } ===========================================
constructor TJvWizardRouteMapControl.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FImage := TJvWizardImage.Create;
FImage.OnChange := DoImageChange;
{ !!! YW - Add csNoDesignVisible in order to make it visible and invisible
at design Time. }
if csDesigning in ComponentState then
ControlStyle := ControlStyle + [csNoDesignVisible];
FAlign := alLeft;
inherited Align := alLeft;
TabStop := False;
Width := 145;
Visible := True;
FPages := TList.Create;
end;
destructor TJvWizardRouteMapControl.Destroy;
begin
if Assigned(Wizard) then
Wizard.FRouteMap := nil;
FPages.Free;
FImage.Free;
inherited Destroy;
end;
procedure TJvWizardRouteMapControl.DoImageChange(Sender: TObject);
begin
Invalidate;
end;
procedure TJvWizardRouteMapControl.DoAddPage(const APage: TJvWizardCustomPage);
begin
if Assigned(FWizard) then
begin
if Assigned(APage) and (FPages.IndexOf(APage) < 0) then
FPages.Add(APage);
WizardPageAdded(APage);
end;
end;
procedure TJvWizardRouteMapControl.DoDeletePage(const APage: TJvWizardCustomPage);
var
I: Integer;
begin
if Assigned(FWizard) then
begin
if Assigned(APage) then
begin
I := FPages.Remove(APage);
if FPageIndex = I then
FPageIndex := -1;
end;
WizardPageDeleted(APage);
end;
end;
procedure TJvWizardRouteMapControl.DoActivatePage(const APage: TJvWizardCustomPage);
begin
if Assigned(FWizard) then
begin
if Assigned(APage) then
FPageIndex := FPages.IndexOf(APage);
WizardPageActivated(APage);
end;
end;
procedure TJvWizardRouteMapControl.DoUpdatePage(const APage: TJvWizardCustomPage);
begin
if Assigned(FWizard) then
WizardPageUpdated(APage);
end;
procedure TJvWizardRouteMapControl.DoMovePage(
const APage: TJvWizardCustomPage; const OldIndex: Integer);
begin
if Assigned(FWizard) then
begin
if Assigned(APage) then
begin
FPages.Move(OldIndex, APage.PageIndex);
if OldIndex = FPageIndex then
FPageIndex := APage.PageIndex;
end;
WizardPageMoved(APage, OldIndex);
end;
end;
procedure TJvWizardRouteMapControl.SetAlign(Value: TJvWizardAlign);
begin
if FAlign <> Value then
begin
FAlign := Value;
inherited Align := FAlign;
end;
end;
function TJvWizardRouteMapControl.GetPage(Index: Integer): TJvWizardCustomPage;
begin
if (Index >= 0) and (Index < FPages.Count) then
Result := TJvWizardCustomPage(FPages[Index])
else
Result := nil;
end;
function TJvWizardRouteMapControl.GetPageCount: Integer;
begin
Result := FPages.Count;
end;
procedure TJvWizardRouteMapControl.SetImage(const Value: TJvWizardImage);
begin
FImage.Assign(Value);
end;
function TJvWizardRouteMapControl.HasPicture: Boolean;
begin
Result := (FImage.Picture.Graphic <> nil) and not FImage.Picture.Graphic.Empty;
end;
procedure TJvWizardRouteMapControl.SetPageIndex(Value: Integer);
begin
if (FPageIndex <> Value) and (Value >= 0) and (Value < PageCount) then
begin
FPageIndex := Value;
if Assigned(FWizard) and (Pages[FPageIndex].Wizard = FWizard) then
FWizard.SetActivePage(Pages[FPageIndex]);
end;
end;
function TJvWizardRouteMapControl.PageAtPos(Pt: TPoint): TJvWizardCustomPage;
begin
{ YW - Return the page object at the particular point in the route
map control. Return NIL if no page at this particular point. }
Result := nil;
end;
procedure TJvWizardRouteMapControl.MouseDown(Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
APage: TJvWizardCustomPage;
begin
if Button = mbLeft then
begin
APage := PageAtPos(Point(X, Y));
if Assigned(APage) and ((csDesigning in ComponentState) or
(APage.Enabled and APage.EnableJumpToPage)) then // Nonn
begin
if APage.PageIndex = PageIndex + 1 then
Wizard.SelectNextPage
else
if APage.PageIndex = PageIndex - 1 then
Wizard.SelectPriorPage
else
P
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -