IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[Inno Setup] Musique pendant l'installation


Sujet :

Outils Delphi

  1. #1
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut [Inno Setup] Musique pendant l'installation
    Bonjour,
    Bon moi je suis un débutant en programmation et la je veux créer un package d'installation avec inno setup.
    et la j'ai un petit problème pour créer un fichier d'installation avec Inno Setup.
    Mon but et d'ajouter de la music pendant l'installation.
    J’ai pu ajouter de la musique mais la y a quelque problème pour créer les boutons Play, Pause et Stop.

    J’ai cherché a l'aide de Google et j'ai trouvé se code (juste après).
    Mais moi je veux créer des boutons avec des images bmp.
    Bien comme cette installation.




    Si quelqu'un peut m'aidé SVP
    voila mon code source:
    http://www.zshare.net/download/6219084676aeb776/

    Et voila le code que j'ai trouvé à l'aide de Google:
    ---------------------------------------------------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    [Setup]
    AppId=A8E9D6B6-DC99-43C0-815F-FA7FFE037A0F
    AppName=Exemple Script
    AppVerName=Exemple Script 1.0 - RAHiM
    AppVersion=1.0.0.0
    AppPublisher=RAHiM.
    AppPublisherURL=http://www.site.com/
    AppSupportURL=http://www.site.com/
    AppUpdatesURL=http://www.site.com/
    DefaultDirName={pf}\Exemple Script
    DefaultGroupName=Exemple Script
    DisableReadyMemo=Yes
    OutputDir=Output\
    OutputBaseFilename=Exemple_Script_setup
    Compression=lzma/max
    InternalCompressLevel=max
    SolidCompression=true
     
     
    [Languages]
    Name: "english"; MessagesFile: "compiler:Default.isl"
     
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone
     
    [Files]
    Source: "{tmp}\bassmod.dll"; DestDir: "{tmp}"; Flags: deleteafterinstall dontcopy
    Source: "{tmp}\_Music.xm"; DestDir: "{tmp}"; Flags: deleteafterinstall dontcopy
    Source: "{tmp}\_Button.bmp"; DestDir: "{tmp}"; Flags: deleteafterinstall dontcopy
     
    [ Code]
    var
      str: string;
      BASSMODArray: array of Char;
     
     
    const
      BASS_MUSIC_RAMP = 1;               // (Fast Tracker .xm Mode 1)
      BASS_MUSIC_RAMPS = 2;              // (Fast Tracker .xm Mode 2)
      BASS_MUSIC_LOOP = 4;               // (Loop Play Mode)
      BASS_MUSIC_FT2MOD = 16;            // (.mod FastTracker 2)
      BASS_MUSIC_PT1MOD = 32;            // (.mod ProTracker 1)
      BASS_MUSIC_SURROUND = 512;         // (surround Mode 1)
      BASS_MUSIC_SURROUND2 = 1024;       // (surround Mode 2)
     
    function BASSMOD_Init(device: Integer; freq, flags: DWORD): Boolean;
      external 'BASSMOD_Init@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicLoad(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): Boolean;
      external 'BASSMOD_MusicLoad@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_MusicFree();
      external 'BASSMOD_MusicFree@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPlay(): Boolean;
      external 'BASSMOD_MusicPlay@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPause(): Boolean;
      external 'BASSMOD_MusicPause@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicStop(): Boolean;
      external 'BASSMOD_MusicStop@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_Free();
      external 'BASSMOD_Free@files:bassmod.dll stdcall delayload';
     
    procedure PlayButtonOnClick(Sender: TObject);
    var
      Name1: string;
    begin
      if not BASSMOD_MusicPlay then
      begin
        Name1 := ExpandConstant('{tmp}\_Music.xm');
        if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
           BASSMOD_MusicPlay;
      end;
    end;
     
    procedure PauseButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicPause;
    end;
     
    procedure StopButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicStop;
      BASSMOD_MusicFree;
    end;
     
     
    procedure InitializeWizard();
     
    var
      Name1: string;
      PlayButton, PauseButton, StopButton: TButton;
     
      begin
     
        PlayButton := TNewButton.Create(WizardForm);
        PlayButton.Left := ScaleX(10);
        PlayButton.Top := WizardForm.ClientHeight - 30;
        PlayButton.Width := ScaleX(40);
        PlayButton.Height := ScaleY(20);
        PlayButton.Caption := 'Play';
        PlayButton.OnClick := @PlayButtonOnClick;
        PlayButton.Parent := WizardForm;
     
        PauseButton := TNewButton.Create(WizardForm);
        PauseButton.Left := ScaleX(60);
        PauseButton.Top := WizardForm.ClientHeight - 30;
        PauseButton.Width := ScaleX(40);
        PauseButton.Height := ScaleY(20);
        PauseButton.Caption := 'Pause';
        PauseButton.OnClick := @PauseButtonOnClick;
        PauseButton.Parent := WizardForm;
     
        StopButton := TNewButton.Create(WizardForm);
        StopButton.Left := ScaleX(110);
        StopButton.Top := WizardForm.ClientHeight - 30;
        StopButton.Width := ScaleX(40);
        StopButton.Height := ScaleY(20);
        StopButton.Caption := 'Stop';
        StopButton.OnClick := @StopButtonOnClick;
        StopButton.Parent := WizardForm;
     
        WizardForm.PasswordEdit.Visible := False;
        WizardForm.PasswordEdit.Text := '';
     
        ExtractTemporaryFile(ExpandConstant('bassmod.dll'));
        ExtractTemporaryFile(ExpandConstant('_Music.xm'));
        if not BASSMOD_Init(-1, 44100, 0)
          then
        begin
          MsgBox('BASSMOD Can''t initialize the device. Playing is not possible.', mbError, MB_OK)
            BASSMOD_Free;
        end
        else
        begin
          Name1 := ExpandConstant('{tmp}\_Music.xm');
          if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
            BASSMOD_MusicPlay;
        end;
    end;

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    c'est quoi exactement le problème erreur que ta?
    ta un message ou quoi parceque comme sa faudrait chercher...
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  3. #3
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Si j'ai bien compris, son problème est de faire des boutons graphiques
    et je ne sais pas faire avec le pascal de Inno Setup
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    si c'est sa faut declarer les boutons en variable global

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    code]
     
    var
      PlayButton, PauseButton, StopButton: TButton;
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par ThierryAIM Voir le message
    son problème est de faire des boutons graphiques
    Citation Envoyé par ouiouioui Voir le message
    si c'est sa faut declarer les boutons en variable global
    Désolé, mais je ne vois pas le rapport
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  6. #6
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par ThierryAIM Voir le message
    Si j'ai bien compris, son problème est de faire des boutons graphiques
    et je ne sais pas faire avec le pascal de Inno Setup
    Oui, mon problème est comment faire des boutons.

  7. #7
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    effectivement je suis à coté, je croyais avoir sa mais j'y retrouve plus.

    ta essayer de mettre ton image tbitmap puis un tlabel vide par dessus autosize a false et utiliser son onclick? sinon je vois pas
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  8. #8
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par ouiouioui Voir le message
    ta essayer de mettre ton image tbitmap puis un tlabel vide par dessus autosize a false et utiliser son onclick? sinon je vois pas
    oui, moi j'ai déjà essayé
    Sous IS, avec autosize = false et pas de caption le label est gris et recouvre le tbitmap, et c'est là que je n'ai jamais trouvé pour le rendre transparent
    Évidemment, le onclick fonctionne mais on ne voit pas le bitmap
    et il n'y a pas de onclick sur un tbitmap
    Pour ce que j'en sais, les contrôles de base de IS n'ont soit pas de onclick, soit pas de bitmap !
    Après, il faut peut-être chercher du coté des librairies de fonctions pour IS de quelques passionnés, mais je n'ai pas eu le temps
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour.

    si c'est sa faut declarer les boutons en variable global
    Alors je ne connais pas la mécanique d'InnoSetup mais ce que je constate c'est que les boutons créés dans la procédure InitializeWizard sont contenus dans des variables locales à la procédure. De fait à la sortie je pense que ces variables sont détruites et donc les boutons avec.

    Passer les variables en globales permettrait une persistance de ces dernières à travers tout le Wizard.

    Bon cela étant peut-être qu'il y a une méthode un peu plus propre que ça mais comme je disais je ne connais pas IS donc...
    La FAQ - les Tutoriels - Le guide du développeur Delphi devant un problème

    Pas de sollicitations techniques par MP -

  10. #10
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par Aka Guymelef Voir le message
    Passer les variables en globales permettrait une persistance de ces dernières à travers tout le Wizard.
    nan

    Dans IS ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PlayButton := TNewButton.Create(WizardForm);
     
        PlayButton.Parent := WizardForm;
    crée l'élément sur toutes les pages du Wizard

    Et ce n'est toujours pas l'objet de la question initiale !!
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  11. #11
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Oui j'ai pu ajouter des boutons Play, pause, et stop mais pas des boutons graphique.

    J’ai posté un exemple d'une installation avec des boutons graphique + mon script dans le post 1.

    Si quelqu'un peux le modifier pour remplacer les boutons standards en boutons graphique.

  12. #12
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par Rahim-US Voir le message
    Oui j'ai pu ajouter des boutons Play, pause, et stop mais pas des boutons graphique.

    J’ai posté un exemple d'une installation avec des boutons graphique + mon script dans le post 1.

    Si quelqu'un peux le modifier pour remplacer les boutons standards en boutons graphique.
    et tu crois qu'on essaie de faire quoi ????
    Si on savait, y'a longtemps qu'on t'aurait donné la solution !!
    Citation Envoyé par ThierryAIM Voir le message
    Si j'ai bien compris, son problème est de faire des boutons graphiques
    et je ne sais pas faire avec le pascal de Inno Setup
    et de ton coté, ça donne quoi, tes recherches ???

    parce que ton script, il est dispo sur internet depuis longtemps, alors je suis pas vraiment sur que tu ais bien compris ce qu'il y a dedans, et tu attends qu'on te trouves la solution à ton désir
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  13. #13
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par ThierryAIM Voir le message
    et tu crois qu'on essaie de faire quoi ????
    Si on savait, y'a longtemps qu'on t'aurait donné la solution !!


    et de ton coté, ça donne quoi, tes recherches ???

    Oui ThierryAIM et merci pour les repenses.
    Seulement moi j’éssai d’expliquer mon problème parce que j’ai vu dans les postes un peux plus haut ils parlent sur les boutons standards (je croi).

  14. #14
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    j'ai déjà galéré pour faire sa et j'ai recherché par aquis de conscience voila ce que j'ai trouvé avec notre amis google:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ExtractTemporaryFile ('0200. Bmp ');
    Img := TBitmapImage.Create(WizardForm); 
    Img.SetBounds(ScaleX(100), ScaleY(45), 88, 31);
    Img.Bitmap.LoadFromFile(ExpandConstant( '{tmp}\0200.bmp' ));
    Img.Parent := WizardForm.WelcomeLabel2;
    Lbl := TLabel.Create(WizardForm);
    Lbl.Parent := WizardForm.WelcomeLabel2; 
    Lbl.AutoSize := False;
    Lbl.SetBounds(Img.Left, Img.Top, 88, 31); 
    Lbl.OnClick := @LblOnClick; 
    Lbl.Cursor := crHand;
    Lbl.Transparent := True;
    Lbl.Hint := '我的BLOG - http://restools.hanzify.org/' ;
    Lbl.ShowHint := True;
    source: http://translate.google.fr/translate...3DG%26num%3D50
    exemple: http://restools.hanzify.org/inno/logo/inno_logo.zip
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  15. #15
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par ouiouioui Voir le message
    j'ai déjà galéré pour faire sa et j'ai recherché par aquis de conscience
    Citation Envoyé par ThierryAIM Voir le message
    Après, il faut peut-être chercher du coté des librairies de fonctions pour IS de quelques passionnés
    Je m'en doutais bien

    ouiouioui
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  16. #16
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par ouiouioui Voir le message
    j'ai déjà galéré pour faire sa et j'ai recherché par aquis de conscience voila ce que j'ai trouvé avec notre amis google:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ExtractTemporaryFile ('0200. Bmp ');
    Img := TBitmapImage.Create(WizardForm); 
    Img.SetBounds(ScaleX(100), ScaleY(45), 88, 31);
    Img.Bitmap.LoadFromFile(ExpandConstant( '{tmp}\0200.bmp' ));
    Img.Parent := WizardForm.WelcomeLabel2;
    Lbl := TLabel.Create(WizardForm);
    Lbl.Parent := WizardForm.WelcomeLabel2; 
    Lbl.AutoSize := False;
    Lbl.SetBounds(Img.Left, Img.Top, 88, 31); 
    Lbl.OnClick := @LblOnClick; 
    Lbl.Cursor := crHand;
    Lbl.Transparent := True;
    Lbl.Hint := '我的BLOG - http://restools.hanzify.org/' ;
    Lbl.ShowHint := True;
    source: http://translate.google.fr/translate...3DG%26num%3D50
    exemple: http://restools.hanzify.org/inno/logo/inno_logo.zip
    Merci ouiouioui pour le code normalement c'est ce que je cherche.

  17. #17
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Bon j'ai quelques questions à-propos du code.
    J’ai modifié le code jusqu'a arriver a cet exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
     
    var
      str: string;
      BASSMODArray: array of Char;
      APlayButtonIndex, AStopButtonIndex: integer;
      APlayButton, AStopButton: TButton;
      PlayButtonPanel, StopButtonPanel: array [0..4] of TPanel;
      PlayButtonImage, StopButtonImage: array [0..4] of TBitmapImage;
      PlayButtonLabel, StopButtonLabel: array [0..4] of TLabel;
     
    const
      BASS_MUSIC_RAMP = 1;               // (Fast Tracker .xm Mode 1)
      BASS_MUSIC_RAMPS = 2;              // (Fast Tracker .xm Mode 2)
      BASS_MUSIC_LOOP = 4;               // (Loop Play Mode)
      BASS_MUSIC_FT2MOD = 16;            // (.mod FastTracker 2)
      BASS_MUSIC_PT1MOD = 32;            // (.mod ProTracker 1)
      BASS_MUSIC_SURROUND = 512;         // (surround Mode 1)
      BASS_MUSIC_SURROUND2 = 1024;       // (surround Mode 2)
     
      HALIGN_CENTER = 0;
      VALIGN_CENTER = 0;
      FIT_NONE = 0;
      CLR_INVALID = $FFFFFFFF;
     
    /////////////////////////////////////////////////////////////////////////////////////////////////
    function BASSMOD_Init(device: Integer; freq, flags: DWORD): Boolean;
      external 'BASSMOD_Init@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicLoad(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD): Boolean;
      external 'BASSMOD_MusicLoad@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_MusicFree();
      external 'BASSMOD_MusicFree@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPlay(): Boolean;
      external 'BASSMOD_MusicPlay@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicPause(): Boolean;
      external 'BASSMOD_MusicPause@files:bassmod.dll stdcall delayload';
     
    function BASSMOD_MusicStop(): Boolean;
      external 'BASSMOD_MusicStop@files:bassmod.dll stdcall delayload';
     
    procedure BASSMOD_Free();
      external 'BASSMOD_Free@files:bassmod.dll stdcall delayload';
    ////////////////////////////////////////////////////////////////////////////////////////////////////
     
     
     
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    procedure PlayButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      if PlayButtonLabel[TLabel(Sender).Tag].Enabled then
         PlayButtonImage[TLabel(Sender).Tag].Left:=-64
    end;
     
    procedure PlayButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      PlayButtonImage[TLabel(Sender).Tag].Left:=0
    end;
    ////////////////////////////////////////////////////////////////////////////////////////////////
     
     
     
    //////////////////////////////////////////////////////////////////////////////////////////////////
    procedure StopButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      if StopButtonLabel[TLabel(Sender).Tag].Enabled then
         StopButtonImage[TLabel(Sender).Tag].Left:=-64
    end;
     
    procedure StopButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      StopButtonImage[TLabel(Sender).Tag].Left:=-0
    end;
    //////////////////////////////////////////////////////////////////////////////////////////////////
     
     
    procedure MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
      StopButtonImage[TLabel(Sender).Tag].Left:=0
      PlayButtonImage[TLabel(Sender).Tag].Left:=0
    end;
     
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    procedure PlayButtonOnClick(Sender: TObject);
    var
      Name1: string;
    begin
      if not BASSMOD_MusicPlay then
      begin
        Name1 := ExpandConstant('{tmp}\_Music.xm');
        if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
           BASSMOD_MusicPlay;
      end;
    end;
     
    procedure PauseButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicPause;
    end;
     
    procedure StopButtonOnClick(Sender: TObject);
    begin
      BASSMOD_MusicStop;
      BASSMOD_MusicFree;
    end;
    ////////////////////////////////////////////////////////////////////////////////////////////////////
     
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    procedure InitializeWizard();
     
    var
      Name1: string;
      PlayLbl, StopLbl: TNewStaticText;
      PlayImage, StopImage: TBitmapImage;
      Panel, PlayPanel, StopPanel: TPanel;
      PlayLabl, StopLabl: TLabel;
     
     
        begin
        ExtractTemporaryFile(ExpandConstant('bassmod.dll'));
        ExtractTemporaryFile(ExpandConstant('_Music.xm'));
        ExtractTemporaryFile(ExpandConstant('_MusicPlayButton.bmp'));
        ExtractTemporaryFile(ExpandConstant('_MusicPauseButton.bmp'));
        ExtractTemporaryFile(ExpandConstant('_MusicStopButton.bmp'));
     
        if not BASSMOD_Init(-1, 44100, 0)
          then
        begin
          MsgBox('BASSMOD Can''t initialize the device. Playing is not possible.', mbError, MB_OK)
            BASSMOD_Free;
        end
        else
        begin
          Name1 := ExpandConstant('{tmp}\_Music.xm');
          if BASSMOD_MusicLoad(FALSE, PChar(Name1), 0, 0, BASS_MUSIC_LOOP or BASS_MUSIC_SURROUND) then
            BASSMOD_MusicPlay;
        end;
     
        begin
          Panel:=TPanel.Create(WizardForm)
          Panel.Left:=5
          Panel.Top:=WizardForm.ClientHeight - 41
          Panel.Width:=ScaleY(70)
          Panel.Height:=ScaleX(40)
          Panel.Parent:=WizardForm
          Panel.BevelInner := bvLowered
          Panel.BevelOuter := bvRaised
          Panel.Color :=$e2e2e2
     
          PlayPanel:=TPanel.Create(WizardForm)
          PlayPanel.Left:=10
          PlayPanel.Top:=WizardForm.ClientHeight - 38
          PlayPanel.Width:=ScaleY(31)
          PlayPanel.Height:=ScaleX(33)
          PlayPanel.Parent:=WizardForm
          PlayButtonPanel[APlayButtonIndex]:=PlayPanel
     
     
          PlayImage:=TBitmapImage.Create(WizardForm)
          PlayImage.Width:=96
          PlayImage.Height:=33
          PlayImage.Enabled:=False
          PlayImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\_MusicPlayButton.bmp'))
          PlayImage.Parent:=PlayPanel
          PlayButtonImage[APlayButtonIndex]:=PlayImage
     
           with TLabel.Create(WizardForm) do begin
          Tag:=APlayButtonIndex
          Parent:=PlayPanel
          Width:=PlayPanel.Width
          Height:=PlayPanel.Height
          Transparent:=True
          Cursor := crHand
          OnClick:=@PlayButtonOnClick
          OnDblClick:=@PlayButtonOnClick
          OnMouseDown:=@PlayButtonLabelMouseDown
          OnMouseUp:=@PlayButtonLabelMouseUp
          end
          PlayLabl:=TLabel.Create(WizardForm)
          PlayLabl.Left:=23
          PlayLabl.Top:=5
          PlayLabl.Autosize:=True
          PlayLabl.Alignment:=taCenter
          PlayLabl.Transparent:=True
          PlayLabl.Font.Color:=clWhite
          PlayLabl.Parent:=PlayPanel
          PlayLabl.OnClick:=@PlayButtonOnClick
          PlayLabl.Hint := 'Play Music'
          PlayLabl.ShowHint := True
          PlayLabl.OnDblClick:=@PlayButtonOnClick
          PlayLabl.OnMouseDown:=@PlayButtonLabelMouseDown
          PlayLabl.OnMouseUp:=@PlayButtonLabelMouseUp
          PlayButtonLabel[APlayButtonIndex]:=PlayLabl
        end
     
     
        Begin
          StopPanel:=TPanel.Create(WizardForm)
          StopPanel.Left:=43
          StopPanel.Top:=WizardForm.ClientHeight - 38
          StopPanel.Width:=ScaleY(31)
          StopPanel.Height:=ScaleX(33)
          StopPanel.Parent:=WizardForm
          StopButtonPanel[AStopButtonIndex]:=StopPanel
     
          StopImage:=TBitmapImage.Create(WizardForm)
          StopImage.Width:=96
          StopImage.Height:=33
          StopImage.Enabled:=False
          StopImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\_MusicStopButton.bmp'))
          StopImage.Parent:=StopPanel
          StopButtonImage[AStopButtonIndex]:=StopImage
     
           with TLabel.Create(WizardForm) do begin
          Tag:=AStopButtonIndex
          Parent:=StopPanel
          Width:=StopPanel.Width
          Height:=StopPanel.Height
          Transparent:=True
          Cursor := crHand
          OnClick:=@StopButtonOnClick
          OnDblClick:=@StopButtonOnClick
          OnMouseDown:=@StopButtonLabelMouseDown
          OnMouseUp:=@StopButtonLabelMouseUp
          end
          StopLabl:=TLabel.Create(WizardForm)
          StopLabl.Left:=23
          StopLabl.Top:=5
          StopLabl.Autosize:=True
          StopLabl.Alignment:=taCenter
          StopLabl.Transparent:=True
          StopLabl.Hint := 'Stop Music'
          StopLabl.ShowHint := True
          StopLabl.Font.Color:=clWhite
          StopLabl.Parent:=StopPanel
          StopLabl.OnClick:=@StopButtonOnClick
          StopLabl.OnDblClick:=@StopButtonOnClick
          StopLabl.OnMouseDown:=@StopButtonLabelMouseDown
          StopLabl.OnMouseUp:=@StopButtonLabelMouseUp
          StopButtonLabel[AStopButtonIndex]:=StopLabl
          end
    end;
    1 - pour la transparence des bitmaps: comment rendre les bords des bitmaps transparents?

    2 - comment ajouter l'image hors du survole du curseur sur le bouton.
    Bon normalement c'est la procedure 'StopButtonLabelMouseMove' et 'PlayButtonLabelMouseMove'
    Mais j'aimerai bien si quelqu'un peux m'aider à trouver le bon code.

    3 - pour le bouton 'Play' j'aimerai bien l'avoir en double fonction (Play et pause), comment puise je faire ça?

    Merci d'avance.

  18. #18
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    pour la transparence si je ne me trompe pas c'est la couleur du pixel en haut à gauche de l'image

    le 2 j'ai pas compris

    le 3 moi lors du clique sur lecture je mettrai mon boutton pause (qui serait aux même coordonnées) au 1ère plan avec BringToFront puis a l'appuie sur stop tu remet lecture au premier plan.
    et lors du clique sur pause tu change juste l'image par celle de lecture et vice versa.
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  19. #19
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Merci ouiouioui pour ta repense,
    Citation Envoyé par ouiouioui Voir le message
    pour la transparence si je ne me trompe pas c'est la couleur du pixel en haut à gauche de l'image
    Bon j’ai reglé le problème de la transparence des bitmaps
    Voila le code que j’ai ajouté sur les bitmaps

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    PlayImage.ReplaceColor :=$e2e2e2
    PlayImage.ReplaceWithColor :=clbtnface
    C’est du Delphi.

    le 2 j'ai pas compris
    Pour le 2ème j’ai le fichier bitmap du bouton Play avec 3 bouton en 1
    1 pour le pouton libre
    2 pour le bouton lorsque le curseur passe sur lui
    3 pour le bouton activé.

    Et moi mon problème c’est que je n’arrive pas mettre le bon code pour changer le bitmap lorsque le curseur passe sur le bouton mais sans cliqué sur lui.

    le 3 moi lors du clique sur lecture je mettrai mon boutton pause (qui serait aux même coordonnées) au 1ère plan avec BringToFront puis a l'appuie sur stop tu remet lecture au premier plan.
    et lors du clique sur pause tu change juste l'image par celle de lecture et vice versa.
    Pour le 3ème j’ai ajouté le bouton pause avec les fonctions et les même coordonnées, mais je sais pas utiliser BringToFront, si tu peux m’expliqué un peux plus (un exemple si tu peux).

    Et merci beaucoup

  20. #20
    Membre habitué Avatar de Rahim-US
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2009
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2009
    Messages : 151
    Points : 134
    Points
    134
    Par défaut
    Re

    je pense que j'ai trouvé quelque chose mais ça fonctionne pas avec moi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure PlayMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    begin
      if PlayImage.Left <> -96 then PlayImage.Left := -192
      StopImage.Left := -64
    end;
    le boutton Play a l'execution de l'install est normal au clique est normal au survole il se change mais il reste sur le dernier bitmap.

    quelqu'un a un repense pour le problème.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Inno Setup] Detection de JRE installé
    Par JuFromParis dans le forum Outils
    Réponses: 3
    Dernier message: 12/10/2011, 11h50
  2. Réponses: 2
    Dernier message: 24/11/2010, 11h43
  3. Réponses: 13
    Dernier message: 01/12/2009, 23h13
  4. [Inno Setup] dll pendant désinstallation
    Par Calys dans le forum Outils
    Réponses: 3
    Dernier message: 30/06/2008, 19h12
  5. [Inno Setup] Variable d'environnement install path
    Par 0xYg3n3 dans le forum Outils
    Réponses: 5
    Dernier message: 19/10/2007, 10h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo