C++BUIDER: SUITE DE MATRIX (EXTENSION 2)

Signaler
Messages postés
18
Date d'inscription
mardi 12 août 2003
Statut
Membre
Dernière intervention
24 janvier 2004
-
moritzvonfrankreich
Messages postés
4
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 février 2004
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11185-c-buider-suite-de-matrix-extension-2

moritzvonfrankreich
Messages postés
4
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 février 2004

Je continue mon blabla pour faire un écrn de veille type matrix sans peine :
une fois téléchargé le modèle de microsoft, modifier le source de "doframe.c" comme indiqué après, et ajouter un fichier d'entete glob.h pour qques variables globales.
pour le fichier doframe.c :

#include <windows.h>
#include <stdlib.h>
#include "glob.h"

// A simple routine to draw something on the screen
void DrawFrame(HWND hWnd)
{
HDC hDC = GetDC(hWnd); // Get the DC for the window
RECT rect;

// If we didn't get a DC for the window then bail
if (!hDC)
return;

// Get our drawing surface extents
GetClientRect(hWnd, &rect);

{ // ****** Insert your own drawing code between here




int i2,g,nblignH,nblignV,j;
char buf[2];
int nstr;


//ajout moi+++++++++++++++++++
TEXTMETRIC lptm;
//fin ajout+++++++++++++++++++

HBRUSH hbr;








//ajout moi++++++++++++++++++++++++++
GetTextMetrics(hDC,&lptm);

//fin ajout++++++++++++++++++++++++++


// Set the colors
SelectObject(hDC, GetStockObject(BLACK_PEN));





nblignV=rect.bottom/((lptm.tmHeight)+(lptm.tmExternalLeading)); //nb de ligne par écran
nblignH=rect.right/lptm.tmMaxCharWidth; //nb de colonnes


// Get color

g =100 + rand() % 156;




for(i2=0;i2<200;i2++)
{
i[i2]++;
if(i[i2]>=nblignV+30)i[i2]= rand() % nblignV;

}


for(j=0;j<nblignH;j++)
{

//ecrit
//choix de la lettre
nstr=90 + rand() % 162;
buf[0]=nstr;

yecrit[j]=i[j]*(lptm.tmHeight+lptm.tmExternalLeading);
xecrit[j]=j*(lptm.tmMaxCharWidth);
SetBkColor(hDC,RGB(0,0,0));
SetTextColor(hDC,RGB(0,g,0));
TextOut(hDC,xecrit[j],yecrit[j],buf,1);
//efface


yefface[j]=i[j]*(lptm.tmHeight+lptm.tmExternalLeading)-(30*(lptm.tmHeight+lptm.tmExternalLeading));
hbr = CreateSolidBrush(RGB(0,0,0));
if (hbr)SelectObject(hDC, hbr);
Rectangle(hDC,xecrit[j], yefface[j], xecrit[j]+lptm.tmMaxCharWidth, yefface[j]+lptm.tmHeight);
}//for


//fin ajout++++++++++++++++++++++++++++++

//Clean up
SelectObject(hDC, GetStockObject(BLACK_BRUSH));
//DeleteObject(hbr);

} // ****** and here

ReleaseDC(hWnd, hDC);
}



pour le fichier glob.h mettre ca

int i[200];
int yecrit[200],yefface[200],xecrit[200];

et normalemen ca marche. Mon vieux pc 400 mhz peux le faire tourner.
moritzvonfrankreich
Messages postés
4
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 février 2004

Bonjour tout le monde ! j'ai jeté un oeil sur le source. Je pense que pour qu'un écran de veille fonctionne bien, il faut y inclure la bibliothèque scrnsave.lib
Sinon, un modèle de source est disponible sur le site de microsoft (article 160960) que l'on peut voir à la page http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q160/9/60.ASP&NoWebContent=1
comme ca looping pourra bidouiller les animations de jimmy et les inclure dans le source largement commenté de microsoft
looping93290b
Messages postés
30
Date d'inscription
vendredi 6 juin 2003
Statut
Membre
Dernière intervention
22 août 2003

jimmy louis, desoler de ne pas avoir preciser sous quel log. je prog.

donc je prog. sous Microsoft Visual C++ 6.0 et il n'incorepore pas automatiquement "vcl.h" puisqu'il n'existe pas sur mon pc.

donc, si tu peut refaire une source qui contien tout les fichiers que le log. que tu utilise pour prog. incorepore lorsque tu build, cela ferai pour toi un prog. exportable sur d'autres log. de prog.
je t'en remerci d'avance et attend avec patience ton nouveau zip source en esperant que cela fonctionnera.
JimmyLouis
Messages postés
14
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
13 mai 2015

A looping93290b
Il ne manque rien dans le source.
Avec C++Builder la "vcl.h" s'incorpore seule au lancement de CBuilder, tu fais: Construire et executer, c'est tout. ;-)
Jimmy