Développement graphique dans C++ Builder 6?

Résolu/Fermé
Kilgayne Messages postés 3 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 10 mars 2007 - 7 mars 2007 à 07:09
 CARL_GMAN - 15 févr. 2012 à 19:10
J'essaie actuellement de créer un jeu simple dans Borland C++ Builder 6 mais j'ai certains problèmes avec l'affichage des graphiques. Par exemple, voici le code faisant rebondir horizontalement un graphique contenu dans ImageList1:

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
    Canvas->Pen->Color = clMaroon;
    Canvas->Brush->Color = clBlack;
    Canvas->Rectangle(0, 0, Width, Height);
    if (posx>=Width-16) direction=1;
    if (posx<=-16) direction=0;
    if (!direction) posx+=4;
    else posx-=4;
    ImageList1->Draw(Canvas,posx,32,0,1);
}


Tout fonctionne bien mais on peut remarquer une bande noire passant par dessus le graphique par intermittence, montrant que le canvas se rafraichit après toutes modifications et non pas seulement à chaque paint(). Comment faire pour que le canvas se rafraishisse seulement après y avoir mis tous les graphiques?
A voir également:

8 réponses

Bonjour je voudrai télécharger c buider 6, pour programmer mais ji arrive pa
. j'ai un pc pour bureau et g vista
comment dois-je faire?
svp aidez moi
jen ai besoin pour bosser et m'entrainer j'ai un examen à passer
svp
2
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
9 mars 2007 à 19:26
En général, pour éviter ce genre de problème, on travaille dans un bitmap temporaire et une fois le dessin terminé dans le bitmap, on le transfère dans le canvas.
1
Kilgayne Messages postés 3 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 10 mars 2007
9 mars 2007 à 21:59
Est-ce que je pourrais connaitre la bonne façon de faire ça? J'ai essayé de dessiner dans un contrôle Image temporaire et de le transférer sur un autre mais ça ne fonctionne pas, il y a toujours un glitch.
0
lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007 13
10 mars 2007 à 12:10
Voilà ce que cela pourrait donner avec une image stockée dans un TImage :
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
  static int posx = 0;

  // Création d'un bitmap temporaire
  Graphics::TBitmap *bitmap = new Graphics::TBitmap();
  bitmap->Width = Width;    // Donne les dimensions du Canvas au bitmap
  bitmap->Height = Height;

  // On dessine dedans
  bitmap->Canvas->Pen->Color = clMaroon;
  bitmap->Canvas->Brush->Color = clBlack;
  bitmap->Canvas->Rectangle(0, 0, Width, Height);
  posx += 20;  // Translation en X de 20 pixels

  // Pour la demo, j'utilise une image que j'ai mis dans un TImage
  bitmap->Canvas->Draw(posx,0,Image1->Picture->Graphic);

  // On recopie le bitmap dans le Canvas de la form
  Canvas->Draw(0,0,bitmap);

  // Suppression du bitmap temporaire
  delete bitmap;
}
0
Kilgayne Messages postés 3 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 10 mars 2007 > lirey83 Messages postés 75 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 18 août 2007
10 mars 2007 à 23:15
Je suis très surpris mais ça marche bien! Merci infiniment!
0
slt je viens de debuter avec c++ builder et j'aimerai avoir des cours ou des tutos pour pouvoir bien maitriser le logiel.
merci d'avance.
1
Salut,

Voici trois liens indispensables pour C++Builder :
- Tutoriels C++Builder : https://cpp.developpez.com/cours/?page=borland#tutoriels-bcb
- La F.A.Q C++Builder : https://cpp.developpez.com/faq/bcb/
- Le Forum C++Builder : https://www.developpez.net/forums/f30/c-cpp/outils-c-cpp/cppbuilder/
0
je doi pouvoire construire un graph de control a partir d1 programme ecrit en pascal esk kelk1 pourait m'aidé.help me plz
merci d'avance
0
salut nabila je suis brahim ingénieur en electronique ( USTHB) , je travail dans un centre de recherche a alger , je développe quelque logiciels j'aimerai echanger qlque idéés avec vous et te connaitre si c'est pôssible bien sur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
svp je cherche du documentation ou de code source pour en c++ builder pour representer des graphique ou histogramme et comment faire translater une image et le faire tourner dans toute les direction et comment binarise une image
0
donner moi le logiciel c++ builder 6
et merci
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 991
31 août 2008 à 20:37
C++Builder 6 c'est payant
0
je veux un catalogue d'utilisation de c++ builder
0
Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021 1 991
25 juil. 2008 à 00:54
C'est quoi ça ?
0
Alf-Red > Célien Messages postés 5729 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 9 septembre 2021
30 août 2008 à 01:34
je pense qu'il voulait un manuel (un mode d'emploi)
0
Je ne suis pas sûr que ce soit ça le problème mais si tu utilises des graphiques qui se rafraîchissent il faut toujours mettre ta Form contenant ce graphique en DoubleBuffered, ça permet d'éviter le scintillement car l'image est d'abord placé dans un buffer avant d'être affichée.
0