jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 2012
-
17 nov. 2006 à 15:00
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 2022
-
20 nov. 2006 à 12:54
Salut à tous,
[j'espere avoir posté au bon endroit= > sinon EXCUSEZ moi et si un admin pouvais déplacer au bon endroit]
D'habitude je travaille en VB6 mais là j'ai un souci qui est tout autre...
D'abord, (au cas où cela changerait qqch)
- W2K
- Innosetup 5.1.6
- IsTools 5.1.6
- Innosetrup Form Designer 2.0.4
Je suis en train d'essayer de faire un Setup d'installation (mise à jour) à l'aide d'inno setup.
Comme vous le savez sans doute, on peut faire ses propres Form dans la section code d'InnoSetup.
L'aide décrit que le code est en Pascal (SUPER), on m'a dit aussi que le delphi s'en approchait bcp (c'est d'ailleurs pour cette raison que j'ai décidé de poster ici.)=> moi et pascal et delphi ca fait.... 3
alors trêve de bavardage.
Comment assigner une procédure à l'événement Click (OnClick) d'un radio bouton , (Bouton, ....) dans la partie code d'innosetup.
J'ai essayer.
procedure RdOUIClick();
begin
end;
[reste du code]
{ RdOUI }
RdOUI := TRadioButton.Create(Page);
with RdOUI do
begin
Parent := Panel1;
Left := ScaleX(40);
Top := ScaleY(40);
Width := ScaleX(113);
Height := ScaleY(25);
Caption := 'Oui';
Checked := True;
TabOrder := 0;
TabStop := True;
OnClick := @RdOUIClick(); {Avec ou sans @ cela ne fonctionne pas}
end;
Le compilateur ne cesse de m'insulter: "Access Violation at address 0670A5FA Read od address 0000000C " les valeurs varie parfois
Si l'un d'entre vous pouvais m'aiguiller (Lien, explication)
En attendant des réponses, Google is my friend (como siempre) @+: =89254 Ju£i?n Pensez: Réponse acceptée
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 17 nov. 2006 à 15:52
Salut,
Merci [auteurdetail.aspx?ID=311214 cirec] pour cette réponse rapide.
je ne suis pas du jour à ce que l'on me mâche le travail. Mais là je ne suis pas contre un peu d'aide.
Je vais te montrer la section [Code] ecrite dans Inno setup pour me permettre d'avoir cette feuille
NOTE AU ADMIN: Il serait bon de pouvoir vider nos images Uploader.....
Voici la section en question (tu noteras que rien ne montre TForm1...)
var
Panel1: TPanel;
Label1: TLabel;
RdOUI: TRadioButton;
RdNON: TRadioButton;
Panel2: TPanel;
Label2: TLabel;
RdAutomatique: TRadioButton;
RdManuel: TRadioButton;
TraiteDAT: Boolean;
UseAutoChkpUtil: Boolean;
DONTLAUNCH: Boolean;
ResultCode: Integer;
procedure DeinitializeSetup();
Begin
IF DONTLAUNCH = FALSE THEN
IF UseAutoChkpUtil = TRUE THEN
Exec(ExpandConstant('{app}\AutoChkpUtil.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
ELSE
Exec(ExpandConstant('{app}\ChkpUtil.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
DeleteFile(ExpandConstant('{app}\AutoChkpUtil.exe'));
End;
Function GetDATDirectory(Param: String): String;
begin
If TraiteDAT = True then
Result := 'NEWDAT'
else
Result := ''
end;
procedure RdOUIClick();
begin
end;
procedure ChoixDAT_Activate(Page: TWizardPage);
begin
end;
function ChoixDAT_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;
function ChoixDAT_BackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
function ChoixDAT_NextButtonClick(Page: TWizardPage): Boolean;
begin
TraiteDAT := RdOUI.Checked;
if TraiteDAT = TRUE THEN
UseAutoChkpUtil := RdAutomatique.Checked
else
DONTLAUNCH := TRUE
Result := True;
end;
procedure ChoixDAT_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
end;
function ChoixDAT_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:ChoixDATCaption}'),
ExpandConstant('{cm:ChoixDATDescription}')
);
{ Panel1 }
Panel1 := TPanel.Create(Page);
with Panel1 do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(4);
Width := ScaleX(413);
Height := ScaleY(89);
Alignment := taLeftJustify;
BevelOuter := bvNone;
TabOrder := 0;
end;
{ Label1 }
Label1 := TLabel.Create(Page);
with Label1 do
begin
Parent := Panel1;
Left := ScaleX(16);
Top := ScaleY(16);
Width := ScaleX(279);
Height := ScaleY(13);
Caption := 'Voulez conserver la configuration?';
end;
{ RdOUI }
RdOUI := TRadioButton.Create(Page);
with RdOUI do
begin
Parent := Panel1;
Left := ScaleX(40);
Top := ScaleY(40);
Width := ScaleX(113);
Height := ScaleY(25);
Caption := 'Oui';
Checked := True;
TabOrder := 0;
TabStop := True;
OnClick := @RdOUIClick();
end;
{ RdNON }
RdNON := TRadioButton.Create(Page);
with RdNON do
begin
Parent := Panel1;
Left := ScaleX(40);
Top := ScaleY(64);
Width := ScaleX(105);
Height := ScaleY(17);
Caption := 'Non';
TabOrder := 1;
end;
{ Panel2 }
Panel2 := TPanel.Create(Page);
with Panel2 do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(112);
Width := ScaleX(417);
Height := ScaleY(97);
BevelOuter := bvNone;
TabOrder := 1;
end;
{ Label2 }
Label2 := TLabel.Create(Page);
with Label2 do
begin
Parent := Panel2;
Left := ScaleX(40);
Top := ScaleY(16);
Width := ScaleX(98);
Height := ScaleY(13);
Caption := 'Mode de traitement:';
end;
{ RdAutomatique }
RdAutomatique := TRadioButton.Create(Page);
with RdAutomatique do
begin
Parent := Panel2;
Left := ScaleX(40);
Top := ScaleY(40);
Width := ScaleX(121);
Height := ScaleY(17);
Caption := 'Automatique';
Checked := True
TabOrder := 0;
TabStop := True;
end;
{ RdManuel }
RdManuel := TRadioButton.Create(Page);
with RdManuel do
begin
Parent := Panel2;
Left := ScaleX(40);
Top := ScaleY(64);
Width := ScaleX(129);
Height := ScaleY(25);
Caption := 'Manuel';
TabOrder := 1;
end;
with Page do
begin
OnActivate := @ChoixDAT_Activate;
OnShouldSkipPage := @ChoixDAT_ShouldSkipPage;
OnBackButtonClick := @ChoixDAT_BackButtonClick;
OnNextButtonClick := @ChoixDAT_NextButtonClick;
OnCancelButtonClick := @ChoixDAT_CancelButtonClick;
end;
Result := Page.ID;
end;
procedure InitializeWizard();
begin
ChoixDAT_CreatePage(wpWelcome);
end;
C'est pas grantie, parce que, malgré que ce soit du Pascal, il y une touche d'Inno avec, ce qui change un peut de la structure classique !
Et en plus je n'ai jamais utilisé Inno qui, au passage, est réalisé en Delphi
@+
Cirec
<hr size="2" />
Vous n’avez pas trouvé la réponse que vous recherchez ?
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 20 nov. 2006 à 10:17
Salut,
>[auteurdetail.aspx?ID= 311214 cirec], : Merci de t'être penché sur le sujet
[auteurdetail.aspx?ID=360948 >f0xi] : Merci beaucoup Voila exactement ce que je cherchais (Je cherchais des exemples de ce type mais dans l'aide d'inno setup form designer => alors qu il suffisait d'aller directement dans l'inno setup.
Un grand merci.
Donc pour répondre à la question:
Comment assigner une procédure à l'événement Click (OnClick) d'un radio bouton , (Bouton, ....) dans la partie code d'innosetup.
il mem manquait simplement dans la définition de la porcédure de mettre Sender: TObject
procedure RdOUIClick(Sender: TObject);
begin
end;
[reste du code]
{ RdOUI }
RdOUI := TRadioButton.Create(Page);
with RdOUI do
begin
Parent := Panel1;
Left := ScaleX(40);
Top := ScaleY(40);
Width := ScaleX(113);
Height := ScaleY(25);
Caption := 'Oui';
Checked := True;
TabOrder := 0;
TabStop := True;
OnClick := @RdOUIClick;
end;
Encore un grand merci à vous deux