Unité WinGraph pour Delphi XE

Présentation
L'unité WinGraph de Stefan Berinde, retouchée pour être compatible avec Delphi XE et versions suivantes.

Le dossier .\original contient le paquetage original de WinGraph 1.1.

Le dossier .\demo\chessboard contient un échiquier basé sur l'unité WinGraph.
Téléchargement
Compatibilité
Windows
0  0 
Téléchargé 15 fois Voir les 18 commentaires
Détails
Catégories : Divers
Éditeur : Stefan Berinde   +
Licence : Autre
Date de mise en ligne : 31 octobre 2017




Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 27/10/2017 à 14:09
Pour l'histoire des modifications apportées, voir cette discussion :

https://www.developpez.net/forums/d1.../xe2-wingraph/

Récemment, je me suis aperçu que plus aucun programme basé sur l'unité WinGraph (modifiée ou non) ne fonctionnait : j'obtenais à chaque fois une erreur 216 à l'exécution. En tâtonnant, j'ai vu que le problème venait de la partie OpenGL. Du coup j'ai supprimé cette directive :

Code : Sélectionner tout
{$DEFINE INIT_OPENGL}     //<- switch for OpenGL driver initialization
Cela règle le problème mais évidemment OpenGL n'est plus utilisable (l'exemple real3d.pas ne fonctionne plus). Si quelqu'un a une idée pour une vraie réparation, je suis preneur.
Avatar de anapurna anapurna - Expert confirmé https://www.developpez.com
le 31/10/2017 à 19:32
salut

sous quel système l'as tu essayé ?
regarde si c'est pas l'appel au FPU (set8087 et Get8087) qui déconne pas ?
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 06/11/2017 à 12:02
@anapurna

Merci pour ta réponse, que je viens seulement de voir.

C'est sous Windows : l'unité WinGraph ne fonctionne que sous Windows.

Je n'ai aucune idée de ce qui se passe. Tout ce que je sais c'est que si j'active cette directive :

Code : Sélectionner tout
{$DEFINE INIT_OPENGL}
j'obtiens, à l'exécution du programme, un message "Runtime error 216".

Personnellement, ça ne me gêne pas trop car je n'utilise pas OpenGL mais puisque j'ai publié cette unité, j'aimerais autant qu'elle soit entièrement fonctionnelle.
Avatar de anapurna anapurna - Expert confirmé https://www.developpez.com
le 06/11/2017 à 16:13
salut Roland

je sais que c'est sous windows ... c'etait plus dans le sens win32 ou win64
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 07/11/2017 à 8:54
Citation Envoyé par anapurna Voir le message
je sais que c'est sous windows ... c'etait plus dans le sens win32 ou win64
Ah d'accord, je n'avais pas bien compris la question. Donc mon système d'exploitation c'est Windows 10 64-bit. Mais si j'ai bien compris Delphi compile pour Win32, n'est-ce pas ? Tu penses que ça pourrait venir de là ?
Avatar de anapurna anapurna - Expert confirmé https://www.developpez.com
le 07/11/2017 à 16:21
salut

oui je pense que cela joue pour ton problème
je ne sais plus ou j'ai lu que l'instruction était inopérante pour les système 64 bit

en cherchant un peu j'ai trouvé ce genre de code pour opengl

Code : Sélectionner tout
1
2
3
4
5
6
7
{$IFDEF CPU386}
  Set8087CW($133F);
{$ENDIF}
{$IFDEF DGL_64BIT}
  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
{$ENDIF}
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 07/11/2017 à 18:12
@anapurna

Merci pour le code. Je vais l'essayer.
Avatar de Roland Chastain Roland Chastain - Rédacteur/Modérateur https://www.developpez.com
le 17/11/2017 à 14:10
Bon, je n'ai toujours pas réussi à résoudre le problème. Peut-être que je n'ai pas su utiliser la solution proposée.
Avatar de anapurna anapurna - Expert confirmé https://www.developpez.com
le 20/11/2017 à 11:02
salut

tu as un exemple qui ne fonctionne pas avec wingraph même basique histoire
que je regarde un peu le problème dès que j'ai un peu de temps chez moi ...
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Responsables bénévoles de la rubrique Delphi : Gilles Vasseur - Alcatîz -