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

Lazarus Pascal Discussion :

Utiliser la SDL dans une fenêtre classique [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut Utiliser la SDL dans une fenêtre classique
    Bonjour,

    Savez-vous s'il est possible d'utiliser la SDL dans une fenêtre classique (TForm) avec Lazarus ?

    Si oui, avez-vous un exemple de mise en œuvre ?

    Un exemple :



    Dans cet exemple, la partie vidéo est intégrée à une fenêtre classique.

    Merci,
    ZiP

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Bonjour,

    C'est la librairie SDL elle-même qui crée la fenêtre. On peut très bien arriver au même résultat sans utiliser Lazarus (uniquement Free Pascal + SDL).

  3. #3
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut
    Bonsoir M.Dlb,

    Merci pour ces précisions.

    Je vais essayer de trouver de la documentation.

    ZiP

  4. #4
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    On trouve assez facilement de la documentation basée sur C/C++.
    Concernant FreePascal, il existe des unités Pascal qui enveloppe les DLLs SDL. Le site http://www.freepascal-meets-sdl.net/ regroupe les fonctions qu'on peut utiliser avec FreePascal et les librairies fournies (si les fonctions ne sont pas implémentée par l'unité fournie, on peut toujours le faire manuellement ! )

  5. #5
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut
    Bonsoir,

    Je continue mes recherches, je viens de trouver qu'il était possible d'utiliser une fenêtre TForm avec SDL via SDL_WINDOWID.

    Par conséquent, je cherche actuellement des informations sur l'installation de la SDL et l'utilisation de celle-ci dans Lazarus.
    Peut-être via ça : http://sourceforge.net/projects/sdl2fpc/
    Tous conseils sont les bienvenus !

    Je pourrais confirmer ou non par la suite si cette pratique fonctionne.

    Merci,
    ZiP

  6. #6
    Membre éprouvé
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Par défaut
    Bonsoir,

    Il faut simplement ajouter l'unité "sdl" à votre projet avec la dernière version de Lazarus...

    Voici un exemple (fait à l'arrache qui qui démontre que ça fonctionne) :
    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
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      Ecran : PSDL_Surface;
      r : PSDL_Rect;
    begin
      SDL_putenv(PChar('SDL_WINDOWID=' + IntToStr(Form1.Handle)));
      SDL_Init(SDL_INIT_VIDEO);
      Ecran := SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE or SDL_DOUBLEBUF);
     
      r^.x := 50;
      r^.y := 50;
      r^.w := 50;
      r^.h := 50;
      SDL_FillRect(Ecran, r, SDL_MapRGB(Ecran^.format, 0, 255, 0));
    end;
    Je n'ai plus qu'à approfondir l'utilisation de la SDL que je découvre ce jour

    Cordialement,
    ZiP

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/10/2011, 09h13
  2. [XL-2007] Utilisation d'une variable définie dans une formule classique
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 14/09/2011, 16h47
  3. Mettre SDL dans une fenêtre
    Par nono212 dans le forum SDL
    Réponses: 3
    Dernier message: 04/02/2008, 22h17
  4. Utiliser une scroll bar dans une fenêtre
    Par Silverstone dans le forum C++
    Réponses: 1
    Dernier message: 29/12/2006, 00h51
  5. SDL dans une fenêtre windows
    Par Mindiell dans le forum SDL
    Réponses: 2
    Dernier message: 19/12/2006, 22h37

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