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

Composants VCL Delphi Discussion :

Affichage d'une image sur une fenêtre secondaire.


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 13
    Points
    13
    Par défaut Affichage d'une image sur une fenêtre secondaire.
    Bonsoir à tous!

    Avant de commencer, meilleurs voeux pour la nouvelle année!

    Je suis en train de continuer à développer un petit utilitaire de gestion de fichiers ini et dat, afin de faire charger ses fichiers par une application externe. Je considère le soft quasi fini, puisqu'il permet de faire tout ce qui était prévu sur le cahier des charges...donc le bonheur!!! En partie grâce d'ailleurs aux coups de main donnés sur ce forum !

    Cependant, j'aurais voulu rajouter un petit truc bien sympathique. En effet, ce petit utilitaire contient des listes, et j'aurais souhaité afficher une image, en rapport avec l'item sélectionné dans la liste.

    J'ai codé alors ceci pour m'entraîner sur la fiche principale, et çà marche plutôt bien. Cependant, le top aurait été un affichage de cette image, mais dans une autre fenêtre "détachée" de la Form principale.

    Alors j'ai essayé plusieurs solutions:

    1) Afficher l'image dans une autre Form. Le souci est que je ne sais pas trop comment faire...Ja'i essayé de balancer une création de Form sur un évènement On Click d'un bouton, mais j'ai toujours des déclarations de variables introuvables, du fait notamment que le bouton se trouve sur la Form1 et que la TImage se trouve sur la Form2.

    2) Utiliser un TFrame. Bon alors là, çà se complique. Vu le temps que j'ai mis pour comprendre comment çà s'insérait dans une form, je ne vous explique pas l'angoisse...Toujours est'il qu'après avoir eu du mal à pondre un semblant de code, j'ai des erreurs de variable de bouton non déclaré, alors qu'elle est bien déclarée dans la liste des varaibles...

    3) Puis finalement je suis tombé sur http://lberne.developpez.com/delphi/appli-mdi/

    Autant vous dire que j'n'y pane pas grand chose; je me doute que çà doit se rapprocher de ce que je dois faire, mais hélas beaucoup trop de choses abstraites pour le moment...

    Je pense sincèrement que l'idée 1 avec la nouvelle form est pas mal, mais malheureusement, je ne sais pas comment relier les forms entre elles afin que la form1 reconnaisse les variables dela form 2 et vice-versa...

    Pour résumer, la Form1 contient le bouton, la form 2 est une form quiest rendue visible (ou mieux, est créée) en cliquant sur le bouton, et elle se remplie dans la foulée par une image...Est-ce possible de faire comme cela? Ou est-ce que je m'acharne sur qq chose que l'on ne peut faire de la sorte???

    Un p'tit indice siouplé...

  2. #2
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    bonjour,


    une procédure en public dans la form2 que tu appelles depuis ta form1 avec ton image en paramètre et cerise sur le gateau ui appelle le show de la form2


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure ShowWithImage( ABitmap : Tbitmap);
     
    Procedure TForm2.ShowWithImage(ABitmap : Tbitmap);
    Begin
    // traitement de l'image;
     
    SHow;
    End;
    c'est possible aussi avec function SHowModalWithImage(ABitmap : Tbitmap):TmodalResult;

  3. #3
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    salut ,
    voila un peu de code , plus simple qu'une longue explication ..

    pour la fiche 1 , comme tu le vois j'ai rajouter le nom de l'unité de la fiche2 ( unit2 ) dans les uses de Unit1
    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
     
    unit Unit1012;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,unit2;
     
    type
      TForm1 = class(TForm)
        ListBox1: TListBox;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    var
      Form1: TForm1;
     
    implementation
    {$R *.dfm}
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       Form2.Image1.Picture.LoadFromFile('ton'); //<= ici tu charge ton image
       Form2.show; // <= tu montre ta fenetre 
       form1.setfocus; // cela te permet de repasser a ta form1 directement
    end;
    end.
    pour la fiche2 tu as juste a rajouter un timage qui dessine ton image

    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
     
    unit Unit2;
     
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls;
    type
      TForm2 = class(TForm)
        Image1: TImage;
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
    var
      Form2: TForm2;
    implementation
     
    {$R *.dfm}
     
    end.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    Bonjour à tous!

    Merci à vous deux pour le coup de main, çà marche nickel!

    J'ai testé les deux solutions proposées pour essayer de comprendre un peu les choses: la 1ère solution est pour moi plus dure à comprendre mais plus courte au final.
    La seconde est plus simple et me permet plus facilement de faire un LoadFromFile avec une chaîne un peu plus trabiscotée issue d'un copy et de concaténations...

    Merci encore pour le coup de main! C'est sympa!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Recuperer une valeur dans une grille sur une image
    Par gwal21 dans le forum Images
    Réponses: 3
    Dernier message: 26/02/2011, 23h41
  4. afficher une image sur une image de fond
    Par vega95 dans le forum wxPython
    Réponses: 2
    Dernier message: 26/11/2008, 18h41
  5. [Image]charger une image sur une page HTML
    Par Malo dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/07/2006, 18h33

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