Mettre un TImage dans un Tpanel

Résolu
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019 - 4 avril 2007 à 02:41
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019 - 10 avril 2007 à 12:55
Bjr


je suis en traint de faire un compos deriver de TPanel pour Skiner mon
logiciel,  je voudrais  afficher  plusieurs TImage 
dans le TPanel  mais je  n'arrive  qu'a  les 
cree  je ne les  vois pas  dans le  TPanel


j'ai chercher sur le site mais je n'est pas trouver alors si quelqu'un peut m'aider

MERCI d'avance
A+ Louis

8 réponses

jelume Messages postés 120 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 15 novembre 2007 1
4 avril 2007 à 22:24
est-ce que tu as pensé à définir la propriété parent de ton TImage ?

Voilà un exemple de code qui fonctionne

  with TImage.Create(Self) do
  begin
    Top  := 0;
    Left := 0;
    Parent := Panel1;
    picture.LoadFromFile('c:\uneimage.bmp');
  end;

bien sur, l'image du LoadFromFile doit exister à l'emplacement indiqué
3
jelume Messages postés 120 Date d'inscription mardi 3 avril 2007 Statut Membre Dernière intervention 15 novembre 2007 1
4 avril 2007 à 23:20
la ligne 

    Parent := TPn_L);

est fausse. D'abord, la parenthèse fermante, et ensuite, TPn_L est effectivement une classe et non un object.
à remplacer par

Parent := Self;
3
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
4 avril 2007 à 09:07
salut,

Comment voudrais-tu qu'on t'aide de manière efficace si tu ne nous montre pas le bout de code qui pose problème ?

sinon, au pif: as-tu affecté le .parent? fait des recherche avec "création dynamique de composant".

a+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
0
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019
4 avril 2007 à 23:12
Bjr et merci pour ces reponses.

Alors a la conception sur une form je sais la procedure Parent il n'y a pas de probleme

MAIS sur mon composant cela ne marche pas le message d'erreur me dit
que TWinControl et Class ne sont pas compatibles se que je comprend car
mon TPanel et un composant.


Je vous donne le code en entier:


unit pn_L;


interface


uses

  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, Graphics, jpeg;


type

  Tpn_L = class(tpanel)

  private

    { Déclarations privées }

    FImgHaut, FImgDroit, FImgGauche, FImgBas: TBitmap;

    procedure SetImgHaut(value:TBitmap);

  protected

    { Déclarations protégées }

  public

    { Déclarations publiques }

    Constructor Create (AOwner: TComponent);override;

    Destructor Destroy; Override;

  published

    { Déclarations publiées }

  end;


procedure Register;


implementation


Constructor Tpn_L.Create (AOwner: TComponent);

begin

  Inherited Create(AOwner);

  Align := AlClient;

  BevelInner := BvNone;

  BevelOuter := BvNone;

  FImgHaut := TBitmap.Create;

  FImgDroit := TBitmap.Create;

  FImgGauche := TBitmap.Create;

  FImgBas := TBitmap.Create;


  with TImage.Create(Self) do

  begin

    Top  := 0;

    Left := 0;

    Parent := TPn_L);

    picture.LoadFromFile('.\spa0013.jpg');

  end;

end;


destructor Tpn_L.Destroy;

begin

  FImgHaut.Free;

  FImgDroit.Free;

  FImgGauche.Free;

  FImgBas.Free;

 Inherited Destroy;

end;


procedure Register;

begin

  RegisterComponents('Louis', [Tpn_L]);

end;


end.

Louis
0

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

Posez votre question
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019
4 avril 2007 à 23:31
Milles excuses pour la parenthese c'est un oubli

Merci cela marche tres bien

Merci pour vos reponses rapides

A+ Louis
0
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019
10 avril 2007 à 09:40
Bjr.

Je suis toujours avec mon composant deriver de TPanel ou j'affiche un TImage le probleme c'est

qu'a l'execution le TImage ou l'image ne s'affiche pas.


Voila le code


Constructor TPnlCtrl.Create (AOwner: TComponent);

begin

  Inherited Create(AOwner);

  Align := AlClient;

  BevelInner := BvNone;

  BevelOuter := BvNone;

  FImgH := TImage.Create(Self);

  FImgH.AutoSize := True;

  FImgH.Stretch := True;

  with FImgH do

    begin

    Parent := (Self);

    Top  := 0;

    Left := 0;

  end;

end;


destructor TPnlCtrl.Destroy;

begin

  FImgH.Destroy;

 Inherited Destroy;

end;


procedure TPnlCtrl.SetImgH(value: TBitmap);

begin

  With FImgH do

  begin

    FImgH.Picture.Assign(value);

  end;

  Invalidate;

end;


procedure TPnlCtrl.Paint;

begin

  Inherited;

  with FImgH do

    begin

    FImgH.Parent := Self;

  end;

end;


si quelqu'un sait j'ai chercher dans la creation dynamique de composant mais je n'est rien trouver

Merci A+

Louis
0
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
10 avril 2007 à 12:04
salut,

essaie (pour voir d'ou vient le problème):

- affect une valeur à Timage.Width et height (genre 100)

- charge le bitmap depuis le fichier, non avec un assign.(picture.LoadFromFile)
- essaie avec un autre fichier bitmap (le plus basic possible)

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
0
louiwahl Messages postés 103 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 16 mai 2019
10 avril 2007 à 12:55
Bjr Loda.

Et Merci pour vos reponses rapides.


Du coup j'ai recommencer a zero car j'avais deja fait ce que tu me suggere et cela marche tres bien (Meme en *.jpg).


je remet mon code


unit pnlCtrl;


interface


uses

  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls, Graphics, jpeg;


type

  TpnlCtrl = class(tpanel)

  private

    { Déclarations privées }

  protected

    { Déclarations protégées }

  public

    { Déclarations publiques }

    Constructor Create (AOwner: TComponent);override;

    Destructor Destroy; Override;

  published

    { Déclarations publiées }

  end;


procedure Register;


implementation


Constructor TpnlCtrl.Create (AOwner: TComponent);

begin

  Inherited Create(AOwner);

  Align := AlClient;

  BevelInner := BvNone;

  BevelOuter := BvNone;


  with TImage.Create(Self) do

  begin

    Top  := 0;

    Left := 0;

    Parent := Self;

    picture.LoadFromFile('.\MonImage.jpg');

  end;

end;


destructor TpnlCtrl.Destroy;

begin

 Inherited Destroy;

end;


Voila je cherche toujours car je voudrais charger mon image a la conception.

J'ai remarquer qu'a la conception le TImage ne gardais pas l'image en
memoire car en fermant delphi6  et en ouvrant l'image chargee dans
le TImage avant la fermeture n'etait plus la


Merci encore et A+

Louis
0
Rejoignez-nous