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

C++Builder Discussion :

Simuler le tremblement de l'ecran


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Simuler le tremblement de l'ecran
    Voici un morceau de code qui simule le tremblement de l'ecran
    le .cpp
    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
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    // initialisation du Timer
    Timer1->Enabled = true;
    Timer1->Interval = 10;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
    // si on press [ESC] on quitte
    if(Key == 27)
    {
    Form1->Close();
    // arret du Timer
    Timer1->Enabled = false;
    }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Timer1Timer(TObject *Sender)
    {
    int x;
    int y;
    // on donne des valeurs aléatoire à x et y, max 10
    randomize;
    x = random(10);
    y = random(10);
    // on repositione la fenêtre
    Form1->Left = x;
    Form1->Top = y;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
       HDC ScreenSrc;
       Graphics::TBitmap *pBitmap = new Graphics::TBitmap;
       ScreenSrc = GetWindowDC(HWND_DESKTOP);
       if (ScreenSrc == NULL) return;
       Form1->Height = Screen->Height;
       Form1->Width = Screen->Width;
       pBitmap->Height = Screen->Height;
       pBitmap->Width = Screen->Width;
       BitBlt(pBitmap->Canvas->Handle, 0, 0, pBitmap->Width, pBitmap->Height, ScreenSrc, 0, 0, SRCCOPY);
       Form1->Brush->Bitmap = pBitmap;
       Form1->Repaint();
       ReleaseDC(HWND_DESKTOP, ScreenSrc);
    }
    le .h
    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
     
    //---------------------------------------------------------------------------
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ExtCtrls.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published: // IDE-managed Components
            TTimer *Timer1;
            void __fastcall Timer1Timer(TObject *Sender);
            void __fastcall FormKeyDown(TObject *Sender, WORD &Key,
              TShiftState Shift);
            void __fastcall FormCreate(TObject *Sender);
    private: // User declarations
    public:  // User declarations
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    Il me reste un probleme je n'arrive pas a detruire " pBitmap " j'ai systematiquement une erreur

  2. #2
    Membre éclairé
    Homme Profil pro
    Chercheur génie électrique
    Inscrit en
    Mai 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur génie électrique
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 263
    Par défaut
    Essais de mettre la création de Bitmap dans le constructeur?

Discussions similaires

  1. Simuler une resolution d'ecran supérieure à son ecran
    Par identifiant_bidon dans le forum Outils
    Réponses: 0
    Dernier message: 03/08/2013, 14h38
  2. [XL-2003] ouvrir fichier en simulation plein ecran
    Par revemane dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2009, 18h50
  3. Simuler ecart entre deux ecran
    Par Robeeeert dans le forum OpenGL
    Réponses: 4
    Dernier message: 11/06/2007, 15h18
  4. Simuler une imprime ecran
    Par deous dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/05/2007, 14h46
  5. [TP]lire une ligne de l'ecran et la stocker dans une chaine
    Par Bleuarff dans le forum Turbo Pascal
    Réponses: 26
    Dernier message: 02/07/2002, 10h08

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