Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : probleme de violation d'acces [ Divers / Débutant(e) ] (lotfi213_b19)

samedi 10 novembre 2007 à 16:28:36 | probleme de violation d'acces

lotfi213_b19

bonjour a tous,je debute la programmation win32 avec delphi, j'ai ecrit un petit programme qui ne fait qu'afficher l'heure dans la barre de titre de la fenetre active. mais chaque fois je recois un message d'erreur de ce genre: violation d'accès à l'adresse 004BE690 dans le module Project...Lecture de l'adresse 0189EF30 je sais que ce type de messages apparait lors de l'utilisation d'un objet non liberé....mais je n'ai utilisé qu'un seule objet...un TTimer...mon code est le suivant: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, Menus; type TForm1 = class(TForm) Timer1: TTimer; PopupMenu1: TPopupMenu; Aboutus1: TMenuItem; Exit1: TMenuItem; procedure Timer1Timer(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; procedure WatchChanges; { Procedure qui va effacer l'heure quand une fenetre perd le focus } var Form1 : TForm1; TheForeGround { le courrant handle de la fenetre active } ,ThePrForeGround { le handle de la fenetre active ancienne }:THandle; nCaption { Caption de l'ancienne fenetre active } ,CaptionFocused { Caption de la nouvelle fenetre active } : Array [0..255]of char; implementation {$R *.dfm} function GetCaptionWithoutTime(const sCaption : string): PChar; var sTime : string; dtTime : TDateTime; begin sTime := Copy(sCaption, Length(sCaption) - 7, 8); if not TryStrToTime(sTime, dtTime) then Result := PChar(sCaption) else Result := PChar(Copy(sCaption, 1, Length(sCaption) - 8)); end; procedure TForm1.Timer1Timer(Sender: TObject); var text:string; begin TheForeGround := GetForegroundWindow; try GetWindowText(TheForeGround ,CaptionFocused ,256); WatchChanges; text:=timetostr(time); SetWindowText(TheForeground ,Strcat(GetCaptionWithoutTime(CaptionFocused) ,PChar(text))); finally end; ThePrForeGround := TheForeGround; StrCopy(nCaption,CaptionFocused); end; procedure WatchChanges; begin if AnsiStrComp(GetCaptionWithoutTime(CaptionFocused),nCaption)<>0 then begin SetWindowText(ThePrForeground,GetCaptionWithoutTime(nCaption)); end; end; end. j'apprecie vos reponses et votres aides,merci d'avance

samedi 10 novembre 2007 à 22:45:29 | Re : probleme de violation d'acces

cedricbi

J'ai testé ton programme et aucune erreur n'est survenue !
Peux-tu nous indiquer où tu as une erreur.


Le plus dur dans un programme c'est de savoir pourquoi il marche !


samedi 10 novembre 2007 à 23:50:29 | Re : probleme de violation d'acces

cantador

Membre Club
Je pense que tu as viré le caption de la forme et
comme ce cas n'est pas traité...

cantador

dimanche 11 novembre 2007 à 14:36:35 | Re : probleme de violation d'acces

cantador

Membre Club
@lotfi213_b19 :

essaie comme ça :

procedure TForm1.Timer1Timer(Sender: TObject);
var
Heure: array[0..7] of char;
begin
StrPCopy(Heure, TimeToStr(time));
TextOut(TheForeGround, width div 2, 5, Heure, StrLen(Heure));
end;

Juste prévoir la récup du handle dans le create et sa libération dans le close..
plus besoin de WatchChanges ni de GetCaptionWithoutTime..

cantador



Cette discussion est classé dans : end, fenetre, active, procedure, scaption


Répondre à ce message

Sujets en rapport avec ce message

appel de procedure entre fenetre [ par bdv ] quelqu'un connait il la manière d'appeler une procedure appartenant à une fenetre X depuis une fenetre Y. cette procedure est dans la unit de X. en ut TNotifyEvent [ par apz ] Salut, en executant ce code j'ai eu le code d'ereur suivant : Types incompatibles : 'TnotifyEvent' et 'procedure, untyped pointer or untyped parameter "Incompatible types :''Cardinal' and 'String' " [ par Don0Choa ] Bonjour, je fais un petit prog permettant de fair des boite de dialogue en séléctionnant les bouttons, icones etc...Mais voila j'ai une erreur comem d procedure TForm1.LaunchBtn1Click(Sender: TObject); [ par Cyrille2 ] Salut, je fais un petit programme qui doit lire un fichier avec Treader mais j'obtient une EReadError "Invalid property value" sur le readlistbegin .. Problème Econversion Error lors de l'affichage d'une info bulle dans une fenetre MDIChild dans une DLL [ par DarkSky ] Salut a tous,j'ai créer un projet MDI avec Delphi 6 donc les fenetre MDi Filles sont dans une DLL.j'ai une erreur EConversionError a la place de l'aff capture d'écran de la fenetre active [ par etrix ] salut,voilà j'ai deja bcp chercher mais j'ai rien trouver pour faire une capture d'ecran de la fenetre active en delphi.j'espere vraiment que qqun sai Gestion du focus ? [ par Nebula ] Salut à tous !Je cherche à coder un éditeur (un peu comme SynEdit, mais en plus léger) pour la gestion du code C/C++, mais je me heurte à un petit pro pb d'affichage d'un TChart [ par Pegase20 ] bonjour, J'affiche une autre fiche qui contient un graphique (créé à l'aide d'un TChart) quand je clique sur un bouton.Mon pb c'est que le graph ne MDI Filles dans une DLL [ par DarkSky ] ..::= DarkSky =::..Salut almi,j'ai exactement le même problème que toi (Hint) sur l'utilisation de MDI Filles dans une DL Probleme lecture/ecriture dans fichier. [ par Cybric ] Bonsoir.Je débute avec DELPHI, donc novice.Je recopie tel quel le code de lecture de fichier trouvé dans "tout en poche" et cela ne fonctionne pas. Le


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.