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 :

utilisation de LVBKIMAGE (msdn)


Sujet :

Delphi

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 207
    Par défaut utilisation de LVBKIMAGE (msdn)
    Salut, je galère pour utiliser la structure LVBKIMAGE dans mon projet.

    En fait, je l'utilise pour afficher une image de fond à un listview, et j'ai réussi à le mettre en oeuvre.

    Le seul souci que j'ai, c'est pour définir un offset à cette image, j'ai beau utiliser les flags comme indiqué dans la msdn, ç ne veut rien savoir!

    Donc si quelqu'un a déja utilisé ces fonctions, ça m'aiderais d'avoir quelques info dessus, et plus particulièrement la valeur à donner au champ uFlag de la structure pour que les champs d'offset soient pris en compte

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 491
    Par défaut
    salut

    quel est ton probleme exactement

    pour afficher les image il faut passer par des message

    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
     Var
       BKIMG : LVBKIMAGE;
    Begin
        With BKIMG Do
        begin
            If ListView1.ListItems.Count > 0 Then 
             uFlags = LVBKIF_SOURCE_NONE
           Else
           begin 
            uFlags = LVBKIF_SOURCE_URL
            pszImage = (Text1.Text)
            xOffsetPercent = 3
            yOffsetPercent = 3
          End; 
       End; 
     
       SendMessage(ListView1.handle,LVM_SETTEXTBKCOLOR,0,CLR_NONE)
       SendMessage(ListView1.handle,LVM_SETBKIMAGE,0,BKIMG)
    end;
    ou alors une autres methode plus originale

    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
    procedure TMyform.ListViewSetBKImage(ListView1 : TListView;
     FFilename: String; 
      FTile: Boolean; 
      FXOffsetPercent, 
      FYOffsetPercent: Integer; ); 
    var 
      LVBkImg: TLVBkImage; 
    begin 
     
      if assigned(ListView1) and ListView1.HandleAllocated then 
      begin 
        if FFilename <> '' then 
          LVBkImg.ulFlags := LVBKIF_SOURCE_URL 
        else 
          LVBkImg.ulFlags := LVBKIF_SOURCE_NONE; 
     
       if FTile then 
          LVBkImg.ulFlags := LVBkImg.ulFlags or LVBKIF_STYLE_TILE 
        else 
          LVBkImg.ulFlags := LVBkImg.ulFlags or LVBKIF_STYLE_NORMAL; 
     
        LVBkImg.hbm := 0; 
        LVBkImg.pszImage := PChar(FFilename); 
        LVBkImg.cchImageMax := Length(FFilename); 
        LVBkImg.xOffsetPercent := 0; 
        LVBkImg.yOffsetPercent := 0; 
        ListView_SetBkImage(ListView1.Handle, @LVBkImg); 
      end; 
    end;
    @+ Phil

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    207
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 207
    Par défaut
    J'ai implémenté deux méthodes (basée grosso modo sur ton premier code):

    La première avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uFlags = LVBKIF_SOURCE_URL or LVBKIF_STYLE_TILE
    Dans ce cas la msdn spécifie bien que les paramètres xOffsetPercent et yOffsetPercent ne sont pas pris en compte (à cause de l'utilisation du LVBKIF_STYLE_TILE). Par contre, j'arrive à afficher mon image de fond

    La seconde avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uFlags = LVBKIF_SOURCE_URL or LVBKIF_STYLE_NORMAL or LVBKIF_STYLE_TILEOFFSET
    Toujours en me basant sur la msdn, il est spécifié que pour que l'offset soir pris en compte, il faut et LVBKIF_STYLE_NORMAL et LVBKIF_STYLE_TILEOFFSET

    Mais dans ce second cas, je n'ai jamais réussi à afficher quoique ce soit!

    Bref, merci pour tes codes, je vais essayer ça de suite!

Discussions similaires

  1. Utilisation licence MSDN
    Par replica dans le forum Windows
    Réponses: 0
    Dernier message: 06/01/2011, 11h27
  2. [Débutant] utilisation des exempleq MSDN
    Par maxmarie dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2007, 09h31
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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