Może podam przykładowy kod, z którego mechanizmy możesz wykorzystać, bo nie wiem, co tam dokładnie chcesz zrobić:
[Code]
var
Strona1: TWizardPage;
NowyButton: TButton;
BtnNowyClicked: Boolean;//globalna zmienna logiczna określająca, że przycisk "Nowy" został już kliknięty
procedure NowyButtonOnClick(Sender: TObject); //przechwycenie kliknięcia przycisku "Nowy"
begin
If WizardForm.CurPageID=Strona1.ID {wpSelectSir} then //jeśli kliknąłeś przycisk "Nowy" gdy aktywna była Twoja strona {wyboru folderu}
MsgBox('Kliknąłeś przycisk "Nowy" gdy Twoja strona jest widoczna!', mbInformation, MB_OK);
BtnNowyClicked:=true; //włączenie aktywności funkcji ShouldSkipPage (pominięcie 1 strony i wyboru folderu)
end;
procedure InitializeWizard();
begin
BtnNowyClicked:=false; //początkowy stan flagi określającej, że przycisk "Nowy" został już kliknięty
Strona1 := CreateCustomPage(wpselectdir, 'Strona1', 'Text');
NowyButton:= TButton.create(WizardForm);
with NowyButton do
begin
NowyButton.Left := 20;
NowyButton.Top := WizardForm.CancelButton.Top;
NowyButton.Width := WizardForm.CancelButton.Width;
NowyButton.Height := WizardForm.CancelButton.Height;
NowyButton.Caption := 'Nowy';
NowyButton.OnClick := @NowyButtonOnClick;
NowyButton.Parent := WizardForm;
end;
end;
function ShouldSkipPage(PageID: Integer): Boolean; //jeśli funkcja zwróci true, strona o ID=PageID nie będzie wyświetlana
begin
Result := BtnNowyClicked and ((PageID=wpWelcome)or(PageID=wpSelectDir));//Jeśli przycisk "Nowy" został kliknięty, nie będzie wyświetlana 1 strona i wyboru folderu
end;
function NextButtonClick(CurPageID: Integer): Boolean; //przechwycenie kliknięcia przycisku "Next" (lub "Install")
Begin
If CurPageID=wpReady then //jeśli kliknięto przycisk "Next" gdy ma Caption "Install"
Begin
MsgBox('Kliknąłeś przycisk "Install"', mbInformation, MB_OK);
Result:=false; //np. jeśli ma być zablokowane rozpoczęcie instalacji (brak reakcji na kliknięcie przycisku "Install")
End
else Result:=true; //w tej sytuacji kliknięcie przycisku "Next" wywoła właściwą akcję, czyli przeskok na następną stronę)
End;
Mam nadzieję, że to się kompiluje, bo pisałem z pamięci. ;)