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

Langage Delphi Discussion :

Probleme déclaration fonction...


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Points : 14
    Points
    14
    Par défaut Probleme déclaration fonction...
    Salut

    Bon j'ai honte de poser un sujet pour ca mais je m'en sort pas..

    J'utilise une fonction ResizeJPG (utilisant un Tbitmap et des TJpegImage)

    Or la compilation bloque sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        procedure ResizeJpeg(srcJpeg, destJpeg: TJpegImage; const MaxSize: integer);
    avec comme message :

    [Error] Unit1.pas(42): Unsatisfied forward or external declaration: 'TForm1.ResizeJpeg'

    J'ai pourtant bien mis Jpeg dans les uses :/

    Merci beaucoup pour votre coup de main

    Mon code :
    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
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls,shellapi, ExtCtrls, Buttons, Menus, FileCtrl, ShlObj,
      FonctionsChaine, ExtDlgs, jpeg;
     
    type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Image1: TImage;
        lbl_et3_specifiez: TLabel;
        OpenDialog1: TOpenDialog;
        cmd_et3_parcourir: TButton;
        lblet1_parcourir: TLabel;
        txt_et1_parcourir: TEdit;
        cmd_et1_parcourir: TButton;
        MainMenu1: TMainMenu;
        Fichier1: TMenuItem;
        Ouvriruneimage1: TMenuItem;
        Enregistrerlimageredimensionne1: TMenuItem;
        Fermerlimage1: TMenuItem;
        Quitter1: TMenuItem;
        Aide1: TMenuItem;
        lbl_et2_dim: TLabel;
        lbl_et2_logo: TLabel;
        radio_logo1: TRadioButton;
        radio_logo2: TRadioButton;
        list_et2_dim: TComboBox;
        Image2: TImage;
        Image3: TImage;
        Image5: TImage;
        SavePictureDialog1: TSavePictureDialog;
        Image4: TImage;
        procedure FormCreate(Sender: TObject);
        procedure TraiteMessage(var Msg: TMsg; var Handled: Boolean);
        procedure DessineIcone(NomDuFichier:string);
        procedure cmd_et3_parcourirClick(Sender: TObject);
        procedure cmd_et1_parcourirClick(Sender: TObject);
        procedure ResizeJpeg(srcJpeg, destJpeg: TJpegImage; const MaxSize: integer);
        function type_img_OK(NomDuFichierStr:string): boolean;

  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
    ça ne vient pas des uses mais plutot de ton implementation Donne-nous le code de l'implémentation de cette procédure
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Salut

    Merci de ta réponse

    Voici la procédure :

    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
     
    procedure ResizeJpeg(srcJpeg, destJpeg: TJpegImage; const MaxSize: integer);
    var 
      Bitmap: TBitmap; 
      Ratio: double; 
    begin 
      {Si l'image est vide ou la largeur est nulle, sortir} 
      if (srcJpeg.Empty) or (MaxSize <= 0) then
        Exit;
     
        { Création d'un TBitmap le temps de redimensionner l'image }
        Bitmap := TBitmap.Create;
        try 
          { Détermination du cadrage Vertical ou horizontal} 
          Ratio := srcJpeg.Height / srcJpeg.Width; 
          if Ratio > 1 then 
            //Cadrage vertical
            Bitmap.Width := Round(MaxSize / Ratio)
          else
            //cadrage horizontal
            Bitmap.Width := MaxSize;
          Bitmap.Height := Round(Bitmap.Width * Ratio); 
          //Copie de l'image avec redimensionnement sur le canvas du TBitmap 
          Bitmap.Canvas.StretchDraw(Bitmap.Canvas.ClipRect, srcJpeg); 
          {Il ne reste plus qu'à copier l'image redimensionnée dan le Jpeg 
    à retourner} 
          destJpeg.Assign(Bitmap); 
        finally 
          Bitmap.Free;                   //désallocation memoire
        end; 
    end;
    ps:Quand je fais Ctrl + clique sur JPEG (ca me fait normalement rentré dans le .pas de ce que je clique) il me dit:
    Unable to locate jpeg.pas

    Serais ce lié a mon erreur?

    Bonne ap

  4. #4
    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
    C'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure ResizeJpeg(srcJpeg, destJpeg: TJpegImage; const MaxSize: integer);
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    procedure TForm1.ResizeJpeg(srcJpeg, destJpeg: TJpegImage; const MaxSize: integer);
    Car tel que tu l'as déclaré, ResizeJpeg est un membre de TForm1
    D'ailleurs, il faudrait que tu la mette dans une section (par exemple, public ou private) mais pas là où tu l'as mise
    Quand tu déclares une méthode comme ça, mets le curseur dessus et fait: Ctrl+Shift+C et Delphi fait tout pour toi
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 27
    Points : 14
    Points
    14
    Par défaut
    Merci Enormément..

    Je cherchait plus compliqué.. je ne m'y ferais pas prendre 2 fois


    A bientot !

  6. #6
    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
    Mais avec plaisir
    N'oublie pas le chtit
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

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

Discussions similaires

  1. Help déclaration fonction
    Par bzhrobby dans le forum Windows
    Réponses: 5
    Dernier message: 23/04/2005, 01h50
  2. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  3. [langage] problème avec fonction read
    Par domidum54 dans le forum Langage
    Réponses: 2
    Dernier message: 30/03/2004, 20h42
  4. [VB6]Problème de fonction
    Par mustang-ffw02 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 27/03/2004, 15h09
  5. Probleme de fonction
    Par yenna dans le forum ASP
    Réponses: 6
    Dernier message: 01/03/2004, 14h10

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