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 :

Afficher une image devant un composant ? [FAQ]


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 74
    Par défaut Afficher une image devant un composant ?
    Bonjour, je souhaiterais afficher une petite image devant le coin d'un Memo pour faire croire qu'il est arrondi.
    Le problème c'est que je n'arrive pas à faire afficher l'image devant le memo (idem devant des autres composants), pourtant j'ai essayé de faire un clique droit de souris puis mettre au premier plan mais rien n'y fais

    J'attends vos réponses, merci

  2. #2
    Membre confirmé Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Par défaut
    Bjr,

    Non tu t'y prends mal ...

    Il faut utiliser les régions : voir le tutoriel

    http://zewaren.developpez.com/delphi/regions/

    Ce qui peut donner :

    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
    48
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure ArrondirControl(WinControl : TWinControl; Diametre : Integer);
    var
      Region : HRGN;
    begin
      with WinControl.BoundsRect do
      begin
        // Apparemment les coordonnées sont relatives au contrôle
        Region := CreateRoundRectRgn(0,0,Right-Left,Bottom-Top,Diametre,Diametre);
      end;
      //Application de la region au handle du contrôle
      SetWindowRgn(WinControl.Handle, Region, true);
      DeleteObject(Region); //Suppresion de la region.
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ArrondirControl(Memo1,20);
    end;
     
    end.

    @+
    Php

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 74
    Par défaut
    Merci beaucoup, tu viens de me faire découvrir des fonctionnnalités que je ne soupçonnais pas

  4. #4
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Citation Envoyé par phplive
    Bjr,

    Non tu t'y prends mal ...

    Il faut utiliser les régions : voir le tutoriel

    http://zewaren.developpez.com/delphi/regions/

    Ce qui peut donner :

    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
    48
     
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure ArrondirControl(WinControl : TWinControl; Diametre : Integer);
    var
      Region : HRGN;
    begin
      with WinControl.BoundsRect do
      begin
        // Apparemment les coordonnées sont relatives au contrôle
        Region := CreateRoundRectRgn(0,0,Right-Left,Bottom-Top,Diametre,Diametre);
      end;
      //Application de la region au handle du contrôle
      SetWindowRgn(WinControl.Handle, Region, true);
      DeleteObject(Region); //Suppresion de la region.
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ArrondirControl(Memo1,20);
    end;
     
    end.

    @+
    Php
    Excellente astuce !!!

Discussions similaires

  1. Afficher une Image devant un GLSceneViewer
    Par Wx234 dans le forum Débuter
    Réponses: 3
    Dernier message: 26/08/2013, 18h18
  2. Afficher une image comme composant
    Par Michel Deriaz dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 09/03/2011, 20h26
  3. Réponses: 1
    Dernier message: 22/07/2008, 15h33
  4. Réponses: 2
    Dernier message: 29/05/2007, 14h28
  5. Afficher une image JPEG avec le composant TJPEGImage
    Par BigMike dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/07/2006, 15h21

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