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 :

Changer le code pour mettre plutôt une image ?


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 624
    Points : 199
    Points
    199
    Par défaut Changer le code pour mettre plutôt une image ?
    Bonjour à tous,

    je voudrais que quelqu'un m'aide à modifier ma procédure Draw qui actuellement trace un carré, une ellipse, etc...(suivant la variable FShape) dans lequel j'écris un texte (FName). C'est une unité que j'utilise dans mon programme, je voudrais donc inclure quelques part 3 ou 4 images qui suivant ce que je choisi comme FShape j'affiche une image avec le texte dessous. Je voudrais pouvoir faire exactement comme une icone sur le bureau d'un OS.

    Note : Comment faire en sorte que je puisse ajouter ou enlever des images
    dans mon appli. Du style au chargement de l'appli on recupere les images dans un repertoire pour qu'elles soient utilisé par l'unité.


    Voici le code, j'espere qu'une âme charitable pourra m'aider.

    Amitiés,
    Bruno

    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
    49
    50
    51
    PROCEDURE TGraphNode.Draw( Canvas : TCanvas );
     VAR R : TRect;
         x1, y1, x2, y2 : Integer;
         W, H : Integer;
         s : STRING;
         c: PChar;
     BEGIN
      IF Visible THEN
       BEGIN
        W:=Width;
        H:=Height;
        x1:=x-W DIV 2;
        y1:=y-H DIV 2;
        x2:=x1+W;
        y2:=y1+H;
        WITH Canvas DO
         BEGIN
          Brush.Style:=bsSolid;
          IF (FColor<>clNone) THEN
           Brush.Color:=FColor;
          CASE FShape OF
           stRectangle, stSquare      : Rectangle(x1, y1, x2, y2);
           stRoundRect, stRoundSquare : RoundRect(x1, y1, x2, y2, 16, 16);
           stEllipse, stCircle        : Ellipse(x1, y1, x2, y2);
          END;
          IF (FName<>'') THEN
           BEGIN
            c:=PChar(FName);
     
            DrawText(Canvas.Handle, c, Length(FName), R, DT_CALCRECT);
            H:=R.Bottom-R.Top;
            W:=R.Right-R.Left;
     
            R.Left:=(x1+x2-W) div 2;
            R.Right:=R.Left+W;
     
            R.Top:=(y1+y2-H) div 2;
            R.Bottom:=R.Top+H;
     
            Brush.Style:=bsClear;
            case FTextAlign of
              0 : DrawText(Canvas.Handle, c, Length(FName), R, DT_LEFT);
              1 : DrawText(Canvas.Handle, c, Length(FName), R, DT_CENTER);
              2 : DrawText(Canvas.Handle, c, Length(FName), R, DT_RIGHT);
            else
              DrawText(Canvas.Handle, c, Length(FName), R, DT_CENTER);
            end;
           END;
         END;
       END;
     END; {* PROC .Draw *}

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Tu peux utiliser des Tbitmap que tu crées au démarrage de l'appli. Puis tu utilises leur méthode LoadFromFile.
    Pour les dessiner sur le Canvas, utilise Canvas.Draw(...).
    pour plus d'explications

Discussions similaires

  1. Mettre du code pour mettre à jour une zone
    Par AgriPhilou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2008, 13h25
  2. Réponses: 8
    Dernier message: 08/03/2007, 16h54
  3. [FTP] Code pour mettre une image en background
    Par Link14 dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h10
  4. Réponses: 3
    Dernier message: 11/11/2005, 17h15
  5. peut on changer un bouton de formulaire par une image?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 19/08/2005, 13h55

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