lotfi213_b19
Messages postés36Date d'inscriptiondimanche 31 décembre 2006StatutMembreDernière intervention31 juillet 2010
-
10 nov. 2007 à 16:28
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
10 nov. 2007 à 23:50
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:
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 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