AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Inno Setup: Edit1.OnChange und Custom_nextbuttonClick
Thema durchsuchen
Ansicht
Themen-Optionen

Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

Ein Thema von Almond · begonnen am 24. Jan 2006 · letzter Beitrag vom 24. Jan 2006
Antwort Antwort
Almond

Registriert seit: 5. Jan 2006
33 Beiträge
 
Delphi 3 Professional
 
#1

Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 10:10
Ich komme da nicht weiter:

1) Ich möchte gerne den Next-Button deaktivieren (Delphi: enabled:= false), bis der user eine Eingabe macht

sowas wie mit Edit1.onChange ()
bzw.
procedure TForm1.Edit1Change(Sender: TObject);
begin
end;

[code=delphi]; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

[Setup]
AppName=Almond_mail
AppVerName=Almond_mail 1.12
AppPublisher=Almond
DefaultDirName={pf}\Almond_mail
DefaultGroupName=Almond_mail
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: "english"; MessagesFile: "compilerefault.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "E:\Tools\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{userdesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon

[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent


[CustomMessages]
CustomFormCaption=CustomForm Caption
CustomFormDescription=CustomForm description

Code:
  var
    NewStaticText1: TNewStaticText;
    Edit1: TEdit;

  procedure CustomForm_Activate(Page: TWizardPage);
  begin
  end;
  //       ///////////////////////////////////////////////////////
    procedure Edit1_change(Page: TWizardPage);
    begin
          If Edit1.text <> '' then
                  CustomForm_NextButton_click.enabled := false;        //          <<< HIER
    end;
  //       ///////////////////////////////////////////////////////

  function CustomForm_ShouldSkipPage(Page: TWizardPage): Boolean;
  begin
    Result := False;
  end;

  function CustomForm_BackButtonClick(Page: TWizardPage): Boolean;
  begin
    Result := True;
  end;

  function CustomForm_NextButtonClick(Page: TWizardPage): Boolean;
  begin
    Result := True;
  end;

  procedure CustomForm_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
  begin
  end;

  function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
  var
    Page: TWizardPage;
  begin
    Page := CreateCustomPage(
      PreviousPageId,
      ExpandConstant('{cm:CustomFormCaption}'),
      ExpandConstant('{cm:CustomFormDescription}')
    );

    { NewStaticText1 }
    NewStaticText1 := TNewStaticText.Create(Page);
    with NewStaticText1 do
    begin
      Parent := Page.Surface;
      Left := ScaleX(40);
      Top := ScaleY(32);
      Width := ScaleX(173);
      Height := ScaleY(14);
      Caption := 'Geben Sie einen Accountnamen ein:';
      TabOrder := 0;
    end;

    { Edit1 }
    Edit1 := TEdit.Create(Page);
    with Edit1 do
    begin
      Parent := Page.Surface;
      Left := ScaleX(80);
      Top := ScaleY(88);
      Width := ScaleX(209);
      Height := ScaleY(21);
      TabOrder := 1;
      Text := '';
    end;


    with Page do
    begin
      OnActivate := @CustomForm_Activate;
      OnShouldSkipPage := @CustomForm_ShouldSkipPage;
      OnBackButtonClick := @CustomForm_BackButtonClick;
      OnNextButtonClick := @CustomForm_NextButtonClick;
        //       ///////////////////////////////////////////////////////
              CustomForm_NextButtonClick.enabled := false;                    //          <<< HIER
        //       ///////////////////////////////////////////////////////
      OnCancelButtonClick := @CustomForm_CancelButtonClick;
    end;

    Result := Page.ID;
  end;

  procedure InitializeWizard();
  begin
    CustomForm_CreatePage(wpWelcome);
  end;
_ immer gute Laune
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 10:32
Warum So kompliziert ?
Wenn du es so machst:
[code=delphi]
Code:
var
  UserPage: TInputQueryWizardPage;
procedure InitializeWizard;
begin
 UserPage := CreateInputQueryPage(wpWelcome,
             ExpandConstant('{cm:CustomFormCaption}'), ExpandConstant('{cm:CustomFormDescription}'),'');
UserPage.Add('Geben Sie einen Accountnamen ein:', False);
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
result:=true;
if (curPageID=100) and (UserPage.Values[0]='')
 then
  begin
  MsgBox('Bitte geben Sie ein Account ein',MBError,MB_OK);
  result:=false;
  end
dann denkt ich erreichst du genau das was du willst aber mit dem halben aufwand.
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
Almond

Registriert seit: 5. Jan 2006
33 Beiträge
 
Delphi 3 Professional
 
#3

Re: Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 10:41
stimmt auch, obwohl ich das andere eleganter fände...

müßte aber doch auch irgendwie zu schreiben sein, oder?


EDIT:
man muß doch auch die Eigenschaften der Inno-Eigenen /vorgegebenen Bedienelemente ändern können...
_ immer gute Laune
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 11:48
Sicher gehen tut (fast)alles
Dann nimm das:
[code=delphi]
Code:
var
  UserPage: TInputQueryWizardPage;

procedure Pchange (Sender: TObject);
begin
if (UserPage.Values[0]<>'')
 then Wizardform.NextButton.enabled:=true
 else Wizardform.NextButton.enabled:=false;
end;

procedure InitializeWizard;
begin
UserPage := CreateInputQueryPage(wpWelcome,
             ExpandConstant('{cm:CustomFormCaption}'), ExpandConstant('{cm:CustomFormDescription}'),'');
UserPage.Add('Geben Sie einen Accountnamen ein:', False);
Userpage.edits[0].OnChange:=@Pchange;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=100 Then
 Wizardform.NextButton.enabled:=false;
end;
Ich hoffe jetzt gefällte es dir
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 12:49
Eine Kleinigkeit:
Zitat von thklingler:
Delphi-Quellcode:
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=100 Then
 Wizardform.NextButton.enabled:=false;
end;
Zum einen würde ich nicht den Wert "100" nehmen sondern "UserPage.ID". Der Wert mag zwar 100 sein, aber warum sich so was angewöhnen? Die andere Sache ist die, dass in deinem Fall der Weiter-Button immer deaktiviert wird. Auch, wenn man was ins Eingabefeld geschrieben hat, zum nächsten Fenster ging (Weiter >) und von da aus wieder zurückkam (< Zurück). Besser wäre also ein schlichtes:
Delphi-Quellcode:
if CurPageID = UserPage.ID then
  Pchange(nil);
Und wenn wir schon dabei sind:
Delphi-Quellcode:
procedure Pchange (Sender: TObject);
begin
  WizardForm.NextButton.Enabled := UserPage.Values[0] <> '';
end;
  Mit Zitat antworten Zitat
thklingler

Registriert seit: 1. Jan 2003
Ort: Bad Wurzach
47 Beiträge
 
Delphi 2006 Enterprise
 
#6

Re: Inno Setup: Edit1.OnChange und Custom_nextbuttonClick

  Alt 24. Jan 2006, 14:16
Es ist immer ein freude von dir verbessert zu werden in welchem Forum auch immer
Thomas Klingler
www.setupprofis.de
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz