IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Afficher une image dans un panel


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Points : 46
    Points
    46
    Par défaut Afficher une image dans un panel
    Est-il possible d'afficher une image jpg dans un panel?
    Ne me dites pas d'utiliser TImage parce que mon but est d'alterner videos et photos selon les besoins dans un cadre prédéfini de mon programme (un jeu d'aventure)... Merci de m'aider!

  2. #2
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Il faut créer un composant dérivé d'un TPanel et surcharger le methode Paint.

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    Citation Envoyé par bubulemaster Voir le message
    Il faut créer un composant dérivé d'un TPanel et surcharger le methode Paint.
    Ou de créer un composant dérivé d'un TPanel, qui contienne un TImage.

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Points : 46
    Points
    46
    Par défaut
    Bon, je suis un peu nul, mais comment faites vous pour créer un composant TImage "dérivé" d'un TPanel?

    Le mot me fait peur, j'espère que ça n'a pas de rapport avec la notion d'héritage car la programmation objet, je n'y comprends pas grand chose... Ca fait peur!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 130
    Points : 46
    Points
    46
    Par défaut
    Après réflexion, je crois que je vais simplement superposer un TImage et un TPanel dans l'éditeur de ma form prinipale et que je jouerai avec la fonction :
    Panel1.visible:=false; (ou true)

  6. #6
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    si tu veux un panel qui intègre une image, utilise ceci, ça devrait marcher...
    Dans ton unité principale, tu joins dans les uses : Upanelimage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    unit Upanelimage;
    interface
    uses Extctrls,classes,controls,jpeg;
     
    type Tpanelimage=class(Tpanel)
    protected
    image:Timage;
    public
    constructor create(aowner:Tcomponent);override;
    destructor destroy;override;
    procedure dimension(w,h,x,y:integer;parentctr:Twincontrol);
    procedure loadimage(const filename:string);
    end;
     
    implementation
     
    constructor Tpanelimage.Create(aowner:Tcomponent);
    begin
    inherited;
    image:=Timage.create(self);
    image.Parent:=self;
    end;
     
    destructor Tpanelimage.destroy;
    begin
    image.Free;
    inherited;
    end;
     
    procedure TPanelimage.dimension(w,h,x,y:integer;parentctr:Twincontrol);
    begin
    parent:=parentctr;
    width:=w;
    height:=h;
    left:=x;
    top:=y;
    image.Align:=alclient;
    end;
     
    procedure TPanelimage.loadimage(const filename:string);
    begin
    image.Picture.LoadFromFile(Filename);
    image.Stretch:=true;
    end;
     
    end.
    Ensuite par un exemple d'utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,UPanelimage;
     
    type
      TForm1 = class(TForm)
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
        paneljpeg:Tpanelimage;
     
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    paneljpeg:=Tpanelimage.Create(self);
    paneljpeg.dimension(300,300,30,30,form1);
    paneljpeg.BevelWidth:=10;
    paneljpeg.loadimage('Chemin/photo.jpg');
    end;
     
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
    paneljpeg.Destroy;
    end;
     
    end.
    Tu peux toujours modifier le Tpanelimage pour qu'il réponde à ce que tu veux...

    si tu veux récupérer toutes les méthodes du timage, tu mets image en public...

    la dimension du timage dans le panel, tu modifies...etc.

    voilà

Discussions similaires

  1. [Débutant] Afficher une image dans un panel
    Par cedji dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 20/03/2012, 15h16
  2. Afficher une image dans un cadre (un panel)
    Par Djibson95 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/09/2011, 18h58
  3. Afficher une image dans un état
    Par Invité1 dans le forum IHM
    Réponses: 8
    Dernier message: 23/09/2009, 14h59
  4. Debutant afficher une Image dans un panel
    Par jejermoa dans le forum Graphisme
    Réponses: 5
    Dernier message: 21/03/2008, 11h35
  5. Afficher une image dans un panel ?
    Par Muetdhiver dans le forum wxWidgets
    Réponses: 4
    Dernier message: 03/06/2007, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo