DÉMINEUR UTILISANT UNE TDRAWGRID ET AVEC LEQUEL ON PEUT TRICHER

Signaler
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
-
japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
-
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/44977-demineur-utilisant-une-tdrawgrid-et-avec-lequel-on-peut-tricher

japee
Messages postés
1715
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
2 décembre 2019
3
J'ai bien pris note de vos suggestions.

To do pour la prochaine version :

- chargement des ressources son en mémoire pour éviter un accès répétitif au disque dur, comme me le suggère Cirec (ta dernière solution me convient tout à fait) ;
- ajout du clic simultané droit et gauche comme suggéré par Kenavo. Mais pour ça il faut que je refasse complètement le logigramme... y'a du boulot.

A plus.
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
@ Cirec
Tu avais peut-être utilisé "getHeapStatus.totalFree" au lieu de "getHeapStatus.TotalAllocated", non?

"getHeapStatus.totalFree" est en effet peu fiable à cause du système d'exploitation qui alloue de l'espace quand nécessaire...

Enfin, j'dis ça, j'dis rien. Car on peut te faire confiance en général, quand ton PC n'est pas envouté. ;)
cirec
Messages postés
3809
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
25 janvier 2020
35
Pourquoi faire simple quand on peut faire compliqué ?

Voici une méthode très simple propre et rapide ;-)

Le fichier ressource ressemble à ça :
Tic WAV "Tic.wav"
Tac WAV "Tac.wav"

{$R Sound.res}
Uses MMSystem;
var
PTic, PTac : Pointer;

procedure TForm2.FormCreate(Sender: TObject);
Var
HRes : THandle;
begin
{Charge la ressource en mémoire}
HRes := LoadResource(hInstance, FindResource(hInstance, 'Tic', 'WAV'));
{Renvoie un pointeur sur la ressource
Il n'est pas utile de faire appel UnLockResource
Les libérations se font automatiquement par Windows à la fin de l'application
http://msdn2.microsoft.com/en-us/library/ms648047.aspx}
PTic := LockResource(HRes);

HRes := LoadResource(hInstance, FindResource(hInstance, 'Tac', 'WAV'));
PTac := LockResource(HRes);
end;

Penses tu que ce soit assez rapide ;-)
En l'appliquant sur tous les sons l'application peut ainsi devenir autonome,
pas de fichiers annexe.

@Caribensila :
"Mais pourquoi n'utilisez-vous pas "getHeapStatus.TotalAllocated"
pour détecter les fuites de mémoire?"

Turbo Delphi le fait très bien juste en mettant un boolean à vrai
et qu'il me dit dans la majorité des cas quel objet en est responsable ;)

J'avais déjà fait des testes avec "getHeapStatus.TotalAllocated" sous D4
mais il ne détectait pas toujours toutes les fuites, mais je m'y suis peut être mal pris ?

L'autre possibilité est d'utiliser MemCheck " http://v.mahon.free.fr/pro/freeware/memcheck/ "
Caribensila
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
13
Sniff?.. Sniff!..
Y'a comme une odeur d'éther quand on arrive au bout de ce couloir...
Nix a médicalisé le service?

Bon! Vous allez dire que j'ai encore un métro de retard... Mais pourquoi n'utilisez-vous pas "getHeapStatus.TotalAllocated" pour détecter les fuites de mémoire?
Ca marche pas bien?