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 :

[débutant] probleme d'image


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut [débutant] probleme d'image
    bonjour,

    Sur une fiche j'ai 2 images: une petite qui est fixe (WMF) et une grande qui va tourner et se déplacer(bmp).

    Je voudrais faire passer le WMF devant le bmp. Mais c'est le contraire qui se passe. Pourtant en cliquant sur le bouton droit de la souris sur les images, j'ai mis l'une en avant plan et l'autre en arriere plan mais rien n'y fais. C'est toujours le bmp qui passe devant le bmp. y a t-il un code ou une manip particulier a faire?

    Merci de votre aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 212
    Par défaut
    essaie de mettre ta petite image dans un Tpanel

  3. #3
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    essai la procédure BringToFront et sendtoback de tes objet image

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    j'ai essayé les procédure BringToFront et SendToBack mais ca ne fonctionne pas. Quand je met ma petite image dans un TPanel, ca marche. Mais malgrés ca je ne c'est pas pourquoi ca ne marche pas sans Panel, meme la propriété visible ne fonctionne pas !

    Est-ce que c'est déja arrivé à l'un d'entre vous? ou bien c'est mon code qui foire... Pourtant ca fais trois fois que je le vérifie.

  5. #5
    Membre Expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Par défaut
    eque en peut voir votre code.

    essaie d'appler la procédure repaint de ta fiche apres chaque déplacement.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    voila le code de l'unite qui me pose probleme:
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    unit Unit2;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, Unit3, Math;
     
    type
      TForm2 = class(TForm)
        PaintBox1: TPaintBox;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Button1: TButton;
        Button2: TButton;
        PaintBox2: TPaintBox;
        Panel1: TPanel;
        Image2: TImage;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure PaintBox1Paint(Sender: TObject);
        procedure PaintBox2Paint(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure FormActivate(Sender: TObject);
     
      private
        { Déclarations privées }
        Bitmap: TBitmap;
        RotatedBitmap: TBitmap;
        procedure Rotate(angle: integer);
      public
        { Déclarations publiques }
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    uses Unit1;
     
     
    procedure chgt_rep_lati_longi ();
    var
    epsilon : real;
    begin
       epsilon := alpha - beta;
       Yr := distance * cos(epsilon*Pi/180);
       Xr := distance * sin(epsilon*Pi/180);
       Form2.PaintBox2.Left := 272{Form3.PaintBox2.Left} - round(Xr)+ round(h);
       Form2.PaintBox2.Top := 40{Form3.PaintBox2.Top} + round(Yr)+ round(v);
     
    end;
    .
    .
    .
    procedure TForm2.Rotate(angle: integer);
    var
      RadAngle: extended;
      SinAngle, CosAngle: extended;
      CenterX, CenterY: extended;
      X, Y: extended;
      Xi, Yi: integer;
      i, j: integer;
      c: TColor;
    begin
      RadAngle := angle * pi / 180;
      SinAngle := sin(RadAngle);
      CosAngle := cos(RadAngle);
      CenterX := Bitmap.Width div 2;
      CenterY := Bitmap.Height div 2;
      for i := 0 to Pred(RotatedBitmap.Width) do
        for j := 0 to Pred(RotatedBitmap.Height) do
          begin
            X := (j - CenterY) * SinAngle + (i - CenterX) * CosAngle + CenterX;
            Y := (j - CenterY) * CosAngle - (i - CenterX) * SinAngle + CenterY;
            Xi := Round(X);
            Yi := Round(Y);
            c := Bitmap.Canvas.Pixels[Xi, Yi];
            if (c = -1) then c := clWhite;
            RotatedBitmap.Canvas.Pixels[i, j] := c;
          end;
    end; 
    {$R *.dfm}
     
    procedure TForm2.Button1Click(Sender: TObject);
    begin
    Application.Terminate ;
    end;
     
    procedure TForm2.PaintBox1Paint(Sender: TObject);
    begin
    PaintBox1.Canvas.Draw(0, 0, Bitmap);
    end;
     
    procedure TForm2.PaintBox2Paint(Sender: TObject);
    begin
    PaintBox1.Canvas.Draw(0, 0, RotatedBitmap);
    end;
     
    procedure TForm2.FormCreate(Sender: TObject);
    begin
      Bitmap := TBitmap.Create;
      RotatedBitmap := TBitmap.Create;
      Bitmap.LoadFromFile('ETface.bmp');
      RotatedBitmap.LoadFromFile('EtFace.bmp');
    end;
     
     
     
    procedure TForm2.FormActivate(Sender: TObject);
    begin
    DoubleBuffered :=True;
    while (QFU_new_repere<340) do
      begin
     
      fct_diff;
      fct_angle;
      fct_c;
      fct_repere_avion;
      deplacement_piste;
      chgt_rep_lati_longi;
      latitude_avion := latitude_avion + 0.02;
      longitude_avion := longitude_avion + 0.02;
      //Screen.Cursor := crHourGlass;
      //Form2.Image2.Visible := False;
      Rotate(Round(QFU_new_repere));
      Form2.Refresh;
      //Form2.Image1.Visible := True;
      Paintbox2.Canvas.Draw(0, 0, RotatedBitmap);
      Form2.PaintBox2.SendToBack;
      Form2.Image2.Visible := True;
      Form2.Image2.BringToFront;
      RotatedBitmap.SaveToFile('C:\tmpBmp.bmp');
      //Screen.Cursor := crDefault;
      Form2.Label1.Caption := FloatToStr (Xr)  ;
      Form2.Label2.Caption := FloatToStr (Yr)  ;
      Form2.Label3.Caption := FloatToStr (QFU_new_repere);
      route := route + 2;
      end;
    end;
     
    end.
    voila, toute les variable non déclaré ici sont des variable globale défini dans l'unite3. Sinon si les nom de variable ne sont pas assez parlant, toutes les fonctions permettent de calculer la position d'un objet mobile (ici avion) par rapport à un point fixe (piste). Sur ma fiche l'avion est fixe (image2), c'est la piste qui bouge (paintBox2)(comme si on etait dans le vehicule) pour illustrer autrement on peu aussi le voir comme un jeu de simulation avec une vue du vehicule. Voila voila.

    Je vous ai pas envoyé toutes les fonctions car ce n'est que des math sans affichage et c'est trés long!!! Mais si vous en avez besoin je vous enverez le code complet

    PS: comment met-on les ascenseurs sur la fenetre de code car la ca fait un message super long...

Discussions similaires

  1. [débutant] probleme images
    Par Anthony17 dans le forum Delphi
    Réponses: 7
    Dernier message: 15/05/2006, 16h42
  2. [Image][Débutant]Compression d'images JPG en Java ?
    Par joe.satriani dans le forum 2D
    Réponses: 3
    Dernier message: 30/01/2005, 16h34
  3. [C#][débutant] Probleme avec un case
    Par Le Basque dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/01/2005, 12h45
  4. Probleme d'image temporaire
    Par mIch°° dans le forum Composants VCL
    Réponses: 14
    Dernier message: 03/12/2004, 10h05
  5. [débutante]Probleme de liens image dans JSP/Servlet
    Par celine31 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/11/2004, 15h51

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