1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut Faire un écran de veille avec Delphi à partir d'une animation Flash

    Bonjour !

    J'ai vu qu'il existait une multitude d'outils pour convertir une animation Flash en écran de veille. Soit dit en passant, la plupart sont payants, ce qui prouve qu'il doit y avoir une demande pour ce genre de choses.

    J'ai commencé à les essayer et parallèlement, j'ai voulu voir ce que je pourrais faire dans le même genre par moi-même, en partant du code proposé par Paul TOTH dans cette discussion et du tutoriel de nono40.

    Voici l'état actuel de mon travail (un projet Delphi 7).

    Dans le panneau de réglage de l'écran de veille (Windows 8), l'animation s'affiche correctement dans la petite fenêtre de prévisualisation. En revanche si je clique sur "Aperçu", l'animation ne prend pas tout l'écran mais seulement un carré en haut à gauche. Je ne sais pas si le problème est dans le code FlashPascal ou dans le code Delphi.

    Je me suis aperçu par hasard que si je clique sur ce carré, l'animation prend cette fois tout l'écran mais ensuite la fenêtre ne se ferme plus quand j'appuie sur une touche (elle se ferme en appuyant sur ALT + F4).
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    En visitant le site www.delphiflash.com, je suis tombé sur une page qui (si je comprends bien) décrit un bug de l'objet TShockwaveFlash correspondant à l'expérience que j'ai faite :

    Actually TShockwaveFlash and some its methods do not always work correctly. For example, the movie does not stretch automatically resizing of a parent window;
    Plus bas dans la même page, une façon de corriger ce problème est indiquée. Je vais prendre le temps de regarder tout ça de plus près.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    J'ai reconstruit exactement le même projet avec XE2 et cette fois tout fonctionne correctement.

    Du coup je suis moins motivé pour corriger la version D7 mais j'essaierai peut-être quand même.

    Une petite question en passant : dans l'exemple du tutoriel de nono40, il y a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TFenEcran.FormShow(Sender: TObject);
    var i: Integer;
    begin
      // On masque l'application dans la barre des tâches
      ShowWindow(Application.Handle,SW_HIDE);
    Franchement, je n'ai pas trop compris l'utilité de la chose mais toujours est-il que dans le DPR de mon projet XE2 il y a cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Application.MainFormOnTaskbar := True;
    Est-ce que j'aurais l'équivalent du ShowWindow(..., SW_HIDE) si je faisais la modification suivante dans mon DPR ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Application.MainFormOnTaskbar := False;

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 670
    Points : 21 182
    Points
    21 182

    Par défaut

    pas le temps de regarde ton code, mais oui à ta dernière question, l'option n'existait pas sous D7
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Paul TOTH Voir le message
    pas le temps de regarder ton code, mais oui à ta dernière question, l'option n'existait pas sous D7
    Merci pour la réponse, Paul. Franchement, moi non plus je n'ai pas le temps de le regarder.

    Non, sérieusement, je veux dire que puisqu'en utilisant XE2 tout fonctionne bien, je ne vais pas me casser la tête pour rien. Je vais plutôt peaufiner mon projet XE2 et commencer à réfléchir à l'écran de veille que je pourrais faire avec FlashPascal.

  6. #6
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Voici la version D7 corrigée !

    J'ai modifié l'unité ShockwaveFlashObjects_TLB (en suivant les indications données sur le site que j'ai cité plus haut) et j'ai inclus l'unité modifiée dans le répertoire du projet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.LoadSWF(const AFileName: string);
    ...
      SWF.SetBounds(0, 0, ClientWidth, ClientHeight);
     
      // Appel de la méthode ajoutée CreateWnd pour corriger un défaut dans
      // l'affichage. Le défaut se manifeste lors de l'affichage en plein écran.
     
      if ClientWidth = Screen.Width then
        SWF.CreateWnd;
    Fichiers attachés Fichiers attachés

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    J'ai fait quelques recherches du côté de Lazarus.

    Il y a ces composants payants : j'ai téléchargé la version gratuite et l'ai essayée avec Delphi 7 mais malheureusement les unités FreePascal ne sont pas incluses. Il faudrait que j'en parle au père Noël.

    J'ai trouvé aussi un projet basé sur un autre composant : j'ai pu le compiler et le faire fonctionner sans avoir rien à installer.

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Citation Envoyé par Roland Chastain Voir le message
    J'ai reconstruit exactement le même projet avec XE2 et cette fois tout fonctionne correctement.
    Ou presque ! Les méthodes FormClick et FormMouseMove ne fonctionnent pas (alors que FormKeyDown fonctionne, sauf si j'ai d'abord essayé d'utiliser la souris, auquel cas il n'y a plus aucun moyen de fermer la fenêtre, mis à part ALT + F4).

  9. #9
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Une petite démonstration de l'objet TFlashViewerWindow de la bibliothèque DelphiSWFSDK (version gratuite), compilée avec Delphi 7. Utilisez la souris pour déplacer la fenêtre ou la redimensionner (roulette). Appuyez sur ALT+F4 pour fermer.
    Fichiers attachés Fichiers attachés

  10. #10
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Une autre démonstration : un programme qui capture différentes vues d'une animation.

    La taille de l'animation est préalablement lue dans le fichier, au moyen de l'unité swffileinfo.

    Faites glisser et déposez le fichier SWF de votre choix sur l'icône de l'application.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  11. #11
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    J'ai essayé une autre bibliothèque : F-IN-BOX. Les dernières versions de Delphi sont supportées (tandis que le développement de DelphiSWFSDK s'est arrêté à Delphi XE). Dommage qu'il y ait écrit DEMO VERSION absolument partout.

  12. #12
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    2 956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 2 956
    Points : 10 769
    Points
    10 769
    Billets dans le blog
    4

    Par défaut

    Je vous propose un kit de génération d'écran de veille Windows à partir d'une animation Flash.

    Pour générer l'écran de veille, déposez sample.swf (ou le fichier de votre choix) sur make.bat.
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. faire appel à un projet réalisé avec symfony à partir d'un autre projet
    Par hamzawhy dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 14/02/2015, 16h12
  2. Probleme avec IE pour afficher une animation flash
    Par the magic developer dans le forum Flash
    Réponses: 0
    Dernier message: 24/07/2009, 16h29
  3. Télecharger un fichier video à partir d'une animation flash
    Par filemon dans le forum Intégration
    Réponses: 1
    Dernier message: 28/09/2007, 07h33
  4. [XSLT] faire un tableau à 2 colonnes à partir d'une liste ?
    Par Gob0_ dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/08/2006, 11h14

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