Violation d'acces 00415A7F

Résolu
Signaler
Messages postés
103
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
16 mai 2019
-
Messages postés
103
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
16 mai 2019
-
Bjr a tous

Voila j'ai repris mon compos bouton ou j'affiche un bmp different pour chaque etat de la souris (Click, Down, Leave)car j'essaye de faire afficher des jpeg j'y arrive mais quand je pose le compos sur la fiche il me donne ce message "Violation d'acces 00415A7F".
Si vous avez une idee.
Merci d'avance

Louis

5 réponses

Messages postés
103
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
16 mai 2019

Bjr a tous.

Bacterius merci pour le conseil mais ca ne marche pas.
Alors après mainte recherches et essais je me suis rapeller
un truc que j'avais vu quelque part .
"il faut charger une image a la construction pour enlever l'erreur"
alors c'est ce que j'ai fait et ça marche.



Merci pour les réponses

A+ Louis
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
J'ai perdu ma boule de cristal, désolé ...
Plus sérieusement, ce genre d'erreur indique que tu essayes d'utiliser un objet qui a déjà été libéré avant. Donc, il faudrait que tu puisses poster tout le code (dans la balise code plzz) pour qu'on voie où ça ne va pas. Merci

Cordialement, Bacterius !
Messages postés
103
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
16 mai 2019

Bjr et merci pour la reponse.

D'abord j'ai recommencer entierement et maintenant l'erreur a changee

"Violation d'acces 400287e7"
Voila mon code

[code=pas][unit BtnL;

interface

uses
Windows, Messages, SysUtils, Classes, Controls,Graphics,ExtCtrls,Jpeg;

type
TBtnL = class(tgraphicControl)
private
{ Déclarations privées }
FImgNorm: TJpegImage;
FOnMouseEnter: TNotifyEvent;
FOnMouseLeave: TNotifyEvent;

Procedure CMMouseEnter(Var Msg: TMessage); Message CM_MOUSEENTER;
Procedure CMMouseLeave(Var Msg: TMessage); Message CM_MOUSELEAVE;
Procedure SetImgNorm(Value : TJpegImage);
protected
{ Déclarations protégées }
public
{ Déclarations publiques }
FColor: TColor;
FDown: Boolean;
SDown: Boolean;
Affiche: Boolean;
Procedure CMTextChanged(Var Message: TMessage); Message CM_TEXTCHANGED;
Procedure Paint; Override;
Constructor Create(AOwner: TComponent); Override;
Destructor Destroy; Override;
published
{ Déclarations publiées }
Property Caption;
Property ImgNorm: TJpegImage Read FImgNorm Write SetImgNorm;
end;

procedure Register;

implementation

Constructor TBtnL.Create(AOwner: TComponent);
Begin
Inherited Create(AOwner);
Height := 20;
Width := 80;
FDown := False;
SDown := False;
Affiche := False;
Cursor := crHandPoint;
FOnMouseEnter := Nil;
FOnMouseLeave := Nil;
FImgNorm := TJpegImage.Create;
End;



Procedure TBtnL.SetImgNorm(Value : TJpegImage);
Begin
Try
FImgNorm.Assign(Value);
If Not FImgNorm.Empty
Then Begin
Width := FImgNorm.Width;
Height := FImgNorm.Height;
End
Except
End;
End;

Procedure TBtnL.CMTextChanged(Var Message: TMessage);
Begin
Invalidate;
End;

Procedure TBtnL.Paint;
Var
aRect: TRect;
Flags: LongWord;
Begin
Inherited;
aRect := ClientRect;
Canvas.Font := Font;
Canvas.Brush.Style :=bsClear;
Flags := DT_Center Or DT_VCenter Or DT_ExpandTabs Or DT_SingleLine;

Canvas.Draw(0,0,ImgNorm);
Canvas.StretchDraw(aRect, ImgNorm);
DrawText(Canvas.Handle,PChar(Caption), -1, aRect, Flags);
End;

Procedure TBtnL.CMMouseEnter(Var Msg: TMessage);
Begin
SDown := True;
If Enabled
Then Begin
If Assigned(FOnMouseEnter)
Then FOnMouseEnter(Self);
Invalidate;
End;
End;

Procedure TBtnL.CMMouseLeave(Var Msg:TMessage);
Begin
SDown := True;
If Enabled
Then Begin
If Assigned(FOnMouseLeave)
Then FOnMouseLeave(Self);
Invalidate;
End;
End;

Destructor TBtnL.Destroy;
Begin
FImgNorm.Free;
Inherited Destroy;
End;

procedure Register;
begin
RegisterComponents('Louis', [TBtnL]);
end;

end.]

Merci encore

Louis
Messages postés
103
Date d'inscription
vendredi 20 février 2004
Statut
Membre
Dernière intervention
16 mai 2019

ah oui j'ai oublier!!!
cette erreur survient que quand je pose le composant sur la fiche
apres je peut charger une image et compiler
merci

Louis
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
Salut,
essaye "Parent := TWinControl(AOWner);" juste après le inherited Create, à tout hasard ?

Cordialement, Bacterius !