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

Rave Discussion :

[Rave][Delphi] integration de fichiers JPG


Sujet :

Rave

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut [Rave][Delphi] integration de fichiers JPG
    Bonjour,

    Je voudrais savoir comment intégrer des fichiers .JPG dans mes états rave, le report designer ne semble vouloir accepter que des bmp... et, comme je pose toujours des doubles questions, comment integrer un fichier image dans un composant 'bitmap' (ou autre) par programmation à partir de delphi.

    (nota : ca fait quatres heures que je passe de forum en forum, de site en site et de bouquin en bouquin et je trouve qu'il manque serieusement d'exemples-explication sur le transfert de données par programmation d'un projet delphi dans un report lors des impressions, si quelqu'un a déja réalisé des projets nécessitant ce type de transferts je suis preneur pour tous type d'exemples , ca me servira très certainement.)

  2. #2
    Membre confirmé
    Inscrit en
    Août 2002
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 36
    Par défaut
    si tu travail sur une application de gestion, il faut d'abord savoir comment enregistrer une image *.jpg dans une bdd.

    après cette étape tu peux avoir le résultat voulu.

    a+

  3. #3
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    euh, non, pas en enregistrant dans la base de données mais en te transferant directement depuis delphi dans un champ personalisé (composant RvCustomConnection) j'ai trouvé le code suivant sur le site de nevrona :
    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
     uses JPEG;
     
    procedure TForm1.ReportSystem1Print(Sender: TObject);
     
    var
      Stream: TMemoryStream;
      Image: TJPEGImage;
     
    begin
      With Sender as TBaseReport do begin
        Stream := TMemoryStream.Create;
        Image := TJPEGImage.Create;
        try
          Image.LoadFromFile('image1.jpg');
          Image.SaveToStream(Stream);
          Stream.Position := 0;
          PrintImageRect(1,1,3,3.5,Stream,'JPG');
        finally
          Image.Free;
          Stream.Free;
        end; { tryf }
      end; { with }
    end;
    Mais comment definir les paramètres X1,Y1,X2,Y2 de PrintImageRect?

  4. #4
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Bon, ok, j'ai decidé de reprendre les choses a la base : comment tranferer une donnée dans un rave report sans passer par la bdd?

    Voici le code que j'utilise, il est basé sur un 'tip' que j'ai trouvé sur le site de nevrona
    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
     procedure TFEdition.RvCustomConnection1GetRow(
      Connection: TRvCustomConnection);
     
    var Stream: TMemoryStream;
    memo : Tmemo;
    s1, s2 : string;
    i1 : integer;
    buffy : PChar;
    begin
      with Connection do begin
      s1 := 'mesvaleursaintegrer';
     
      Stream := Tmemorystream.Create;
      Memo := TMemo.Create(self);
      try
          Memo.Text := s1;
          //Memo.Lines.SaveToStream(Stream);
          buffy := PChar(S1);
          Stream.Write(buffy ,0);
           //Stream.SaveToStream(buffy);
          Stream.Position := 0;
          WriteBlobData(Stream.Memory^, Stream.Size);
      finally
          Stream.Free;
          Memo.Free;
      end;
      end;
    end;
     
    procedure TFEdition.RvCustomConnection1GetCols(
      Connection: TRvCustomConnection);
     begin
      With Connection do begin
        DoGetCols;
        WriteField('transfert', dtString, 30, 'transfert', '');
     
     
      end; { with }
     end;
    Le but est d'envoyer un string dans le report. Le message que je recois lors de la tentative d'impression du report est
    'Attempt to write different data type than defined (column 1/2)'
    Vous avez deja résolu ce problème????

  5. #5
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Dernières nouvelles : Il Faut remplacer WriteBlobData par WriteStrData('', S1); et c bon, plus de message d'erreur!!! Par contre la valeur est, sur le document, remplacé par des petits cubes, une idée ? :

    En attendant je continue encore à chercher (2 jours que je cherche )

    Pas d'idée précise pour le transfert de photos par contre.

  6. #6
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Ca y est, j'ai trouve le pb : c'est dans l'état qu'il fallait chercher!! en fait les champs c'était moi qui les définissait, il a suffi d'executer le projet et de recréer le dataview pour récupérer le champ réellement fonctionnel, c'est strictement identique en visu a ce que j'avais fait en nommant le champ a la main sauf que ca marche nikel!, Fallait le savoir.
    Pour info en ajoutant des champs on peu faire un click droit et rafraichir pour les faire apparaitre. Maintenant que ca c'est trouvé, je vai m'atteler a la tâche du transfert de photos.
    Je vous tiens au courant de l'avancement.
    A+

  7. #7
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut [resolu] Transfert de photos JPG Delphi7 --> Rave
    Pour transferer et afficher des Images au format jpg, il faut avoir la vertion de rave complète ou la dernière mise a jour pour delphi 7 (et pas celle d'origine)(maj possible depuis site de borland).
    Ensuite il vous faudra télécharger un composant 'JPEG Component' http://www.nevrona.com/rave/addons.shtml
    Suivez les instructions du readme pour l'install.

    Vous pouvez l'utiliser comme le composant bmp d'origine de rave mais pour des jpg.

    Pour transferer des photos depuis Delphi (sans passer par une base de données, suivez mon exemple donné précédemment, conservez les Blob etc.. et remplacez dtString pat dtgraphic.

    Allez pour ceux qui seraient un peu perdus voici un exemple de 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
    44
    procedure TFEdition.RvCustomConnection2GetCols(
      Connection: TRvCustomConnection);
    begin
    Connection.DoGetCols;
    Connection.WriteField('Logo',dtGraphic,30,'','');
    Connection.WriteField('Photo1',dtGraphic,30,'','');
    Connection.WriteField('Photo2',dtGraphic,30,'','');
    Connection.WriteField('Photo3',dtGraphic,30,'','');
    Connection.WriteField('Photo4',dtGraphic,30,'','');
    end;
     
    procedure TFEdition.RvCustomConnection2GetRow(
      Connection: TRvCustomConnection);
      var Stream : TMemoryStream;
    begin
    Connection.DoGetRow;
    Connection.WriteStrData('','dummy');
    Stream := TMemoryStream.Create;
    Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'Logo.jpg');
    Stream.Position := 0;
    Connection.WriteBlobData(stream.memory^,stream.Size);
    Stream := TMemoryStream.Create;
    Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp0.jpg');
    Stream.Position := 0;
    Connection.WriteBlobData(stream.memory^,stream.Size);
    Stream.Free;
    Stream := TMemoryStream.Create;
    Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp1.jpg');
    Stream.Position := 0;
    Connection.WriteBlobData(stream.memory^,stream.Size);
    Stream.Free;
    Stream := TMemoryStream.Create;
    Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp2.jpg');
    Stream.Position := 0;
    Connection.WriteBlobData(stream.memory^,stream.Size);
    Stream.Free;
    Stream := TMemoryStream.Create;
    Stream.LoadFromFile(ExtractFilePath(Application.exeName) + 'temp\temp3.jpg');
    Stream.Position := 0;
    Connection.WriteBlobData(stream.memory^,stream.Size);
    Stream.Free;
     
     
    end;
    A bientôt

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 8
    Par défaut
    Ok, J'ai tout compris !

    Mais comment fais-tu pour changer la taille du "composant image" dans l'état Rave à l'execution ?
    Mon objectif c'est d'afficher des Jpg (en tenant compte de la taille réelle de l'image).

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

Discussions similaires

  1. [Delphi]Copie d'écran dans un fichier jpg
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 04/01/2011, 14h23
  2. [rave][delphi 7.0] Erreur de Compilation
    Par claude delattre dans le forum Rave
    Réponses: 1
    Dernier message: 06/10/2004, 11h50
  3. [Delphi] Type de fichier DBISAM
    Par Henkyl dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/04/2004, 17h14
  4. [Rave][Delphi][Base SQL] besoin d'informations
    Par David Altech dans le forum Rave
    Réponses: 1
    Dernier message: 30/07/2003, 13h59
  5. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44

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