Handle de fenetre non valide

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 6 sept. 2006 à 11:03
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 - 6 sept. 2006 à 15:26
Bonjour,


Un PC me fait des misères... J'ai une appli Delphi-Paradox qui
m'affiche régulièrement (mais pas systématiquement) le message "Handle
de fenêtre non valide" lorsque je veux prévisualiser un rapport (généré
par QuickReport par "PreviewModal"). La page de prévisualisation
s'affiche bien mais le rapport n'apparait pas. Le pb c'est que je
n'arrive pas à reproduire le bug sur mon pc de dev, ni sur aucun autre.
Je subodore un pb de DLL ou de mémoire... Quelqu'un aurait une petite
piste à me donner ?

Simon

5 réponses

cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
6 sept. 2006 à 11:12
salut,

as-tu essayer d'ajouterais un system de log avec pile d'appel dans ton projet.

et de filerer une version avec log activé au PC missérant.

Tu aurait déjà plus d'info pour chercher...

bonne chance.
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 sept. 2006 à 11:26
Salut Loda et merci pour ta réponse.


Je ne maitrise pas très bien les termes informatiques...
Pourrais-tu m'expliquer en gros ce que c'est qu'un "système de log avec
pile d'appel" (un fichier texte avec des marqueurs?) ? Merci.

Simon
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
6 sept. 2006 à 13:02
un system de log:

Durant l'execution du programme, tu enregistre dans un fichier (souvent .txt) des informations qui te permet de debuger ton applic.

Tu peux le faire toi même, c'est pas compliquer si tu veux qqch de simple.

Ce genre de system peux aussi permettre de "logé" les exceptions.

Il en existe des tout fait qui te gère aussi les pile d'appel (j'ai vu une pub, mais je me rappel pas le nom).

tout cela te permet donc de voir des infos après l'execution (et le plantage) du programme.


un exemple (pas testé) pour me faire comprendre:
----------
{$DEFINE oda_WRITELOG}

// ecrie dans un fichier text le str (ev. avec la date et l'heure)
procedure WriteLog(str : string);


procedure TMaForm.AfficherElement(sender : TForm; ElemNum : integer);
begin
// test parametere
if ElemNum < 0 then begin
{$IFDEF oda_WRITELOG}
WriteLog('[TMaForm.AfficherElement] Num<0 : ' + Sender.Name + ' : '+ inttostr(ElemNum) );
{$END}
exit;
end;

// reste du code
end;

procedure TMaForm.FaireQqch(p1 : integer);
begin
try
// code
except
on E: Exception do begin
WriteLog('[TMaForm.FaireQqch] p1 : '+ inttostr(p1) + ' M: ' + E.Message );
raise;
end;
end;
end;
--------

Pour recuperer la pile d'appel, je sais pas comment faire. Mais c'est possible.

je te conseille aussi de jeter un coup d'oeil à:
TApplication.OnException

bon code,
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
6 sept. 2006 à 14:04
-> Cirec :

Non, c'est un pc tout simple avec un seul écran et XP... Je vais quand même jeter un coup d'oeil à la source en question


-> Loda :

Ok pour ces explications, je vais essayer de m'en servir mais si ça
plante sur le "previewmodal" comme je le pense, je ne vois pas comment
trouver ce qu'il faut faire

Simon
0

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

Posez votre question
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
6 sept. 2006 à 15:26
si ça t'aide (pour un autre problème peut-être...)

debug tool pour delphi:
http://www.torry.net/pages.php?id=265
0
Rejoignez-nous