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

cs_nonoboss Messages postés 18 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 24 janvier 2004 - 13 août 2003 à 20:45
moritzvonfrankreich Messages postés 4 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 24 février 2004 - 15 nov. 2003 à 15:36
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
15 nov. 2003 à 15:36
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
15 nov. 2003 à 09:56
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
22 août 2003 à 12:39
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
17 août 2003 à 17:34
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
looping93290b Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 22 août 2003
17 août 2003 à 17:08
il manque vcl.h pour build ton prog.

cela fait que 1 error, mais importante.
cs_nonoboss Messages postés 18 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 24 janvier 2004
13 août 2003 à 20:45
tu peut me donner l "exe" car j'arrive pas a le compiler ton code!!!
envoi le moi sur i-m.god@laposte.net
merci d'avance , Florian alias nonoboss
Rejoignez-nous