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 :

Suite du topic concernant l'affichage des photos par vignettes !


Sujet :

Delphi

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 420
    Points : 1 325
    Points
    1 325
    Par défaut Suite du topic concernant l'affichage des photos par vignettes !
    Bonjour à toutes et à tous,

    Etant revenu, j'ai repris mon application de test pour le tri des photos avec la propriété "Modifiée le".

    Avec ce code, j'affiche la photo et sa date + l'heure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.BdateClick(Sender: TObject);
    var
      FAge: Integer;
      FileParam: TDateTime;
    begin
     
      chemin := C:\Data\Photos_date\ ;
      FAge:=FileAge(chemin + EddateBis.Text);
      FileParam:=FileDateToDateTime(FAge);
      Eddate.text:='- Cette photo à été créée le '+ DateToStr(FileParam) + ' à '+ TimeToStr(Fileparam) +' -';
     
    end;
    Je n'arrive pas à l'adapter à l'unité "TbiThumb.pas" ou directement dans le code de l'application pour la recherche des photos depuis le dossier.

    Si un des membres qui ont suivi cette discussion avait la solution, je serai heureux de poursuivre mes tests.

    https://www.developpez.net/forums/d2...windows-10-d6/

    @+,

    cincap

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 398
    Points : 300
    Points
    300
    Par défaut
    Pour afficher les vignettes des jpg, j'utilise CCR Exif qui récupère les vignettes intégrées dans les exif :

    https://delphihaven.wordpress.com/ccr-exif/

    S'il n'y a pas d'exif donc pas de vignette, je charge la photo directement mais au quart ou au huitième de la taille réelle pour aller plus vite.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 420
    Points : 1 325
    Points
    1 325
    Par défaut
    @ Bernard B, merci de ta réponse et de ton lien.

    J'aimerai dans mon cas utiliser la procédure remaniée principalement par le membre Cirec car mon application à usage personnel utilise cette procédure que j'avais transmise.

    Le code que j'ai fourni me donne dans un Tedit la date de modification d'une photo .jpg car dans ce dossier se sera toujours ce type de photos et ce dossier sera alimenté avec une date modifiée dans ses propriétés.

    L'affichage de toutes mes photos par des vignettes est correct même si il n'y a pas d'exif, ce qui compte pour moi c'est de contrôler le nombre de photos dans ce dossier et de les afficher par ordre de la date contenue dans les propriétés.

    @+,

    cincap

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Pour moi le problème vient plus de l'utilisation d'un TStringList pour le stockage de la date qu'autre chose.

    Bon, cela dit avec D6 on est limité mais quand même ! Une liste d'objets est le BABA de Pascal Object non ?

    Je suis peut-être hors sujet mais voilà comment je verrais les choses plutôt qu'avec un TStringList

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    type
      TUneImage = class(TObject) 
        nom : string;
        horaire : TdateTime;
        procedure Create(inom : String; iHoraire : TDateTime);   // ajouté pour plus de facilité 
      end;
    cela dit un puriste créerait des propriétés avec get et set
    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
    type
      TUneImage = class (TObject)
      private
        FFileDate: TDateTime;
        FNom: String;
        procedure SetFileDate(const Value: TDateTime);
        procedure SetNom(const Value: String);
      published
        property Nom : String read FNom write SetNom;
        property FileDate : TDateTime read FFileDate write SetFileDate;
        procedure Create(ANom : String; ADate : TDateTime);
      end;
     PUneImage=^TUneImage; 
     
    ...
    implementation
    ...
    { TUneImage }
     
    procedure TUneImage.Create(ANom: String; ADate: TDateTime);
    begin
     FNom:=ANom;
     FFileDate:=ADate;
    end;
     
    procedure TUneImage.SetFileDate(const Value: TDateTime);
    begin
      FFileDate := Value;
    end;
     
    procedure TUneImage.SetNom(const Value: String);
    begin
      FNom := Value;
    end;
    pour le(s) tri(s) Cirec à déjà montré la voie, voilà mes propositions

    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
    function SortByDate(item1, item2: TUneImage): Integer; 
    var d1,d2 : TDate;
    begin
      Result := -1;
      d1:=Trunc(item1.FileDate);  // ne tient pas compte de l'heure
      d2:=Trunc(item2.FileDate);  // ne tient pas compte de l'heure
      if D1 = D2 then Result := 0
      else
        if D1 > D2 then Result := 1;
    end;
     
    function SortByNom(item1, item2: TUneImage): Integer;
    begin
     CompareText(item1.nom, item2.nom) ;
    end; 
     
    function SortByDateetNom(item1, item2: TUneImage): Integer;
    var d1,d2 : TDate;
    begin
      Result := -1;
      d1:=trunc(item1.FileDate);  
      d2:=trunc(item2.FileDate); 
      if D1 = D2 then Result:= CompareText(item1.nom, item2.nom) 
      else 
       if D1 > D2 then Result := 1;
    end; 
     
    function SortByAnMoisNom(item1, item2: TUneImage): Integer;
    var d1,d2 : integer;
         aa,mm,jj : word;    
    begin
      Result := -1;
      DecodeDate(item1.FileDate,aa,mm,jj);
      d1:=aa*100+mm;
      DecodeDate(item2.FileDate,aa,mm,jj);
      d2:=aa*100+mm; 
      if D1 = D2 then Result:= CompareText(item1.nom, item2.nom) 
      else 
       if D1 > D2 then Result := 1;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 420
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 420
    Points : 1 325
    Points
    1 325
    Par défaut
    Bonjour à toutes et à tous,

    @ SergioMaster, merci de tes réponses, j'en prends note, N. B. j'ai plusieurs solutions de la plus simple comme dans le topic de ma demande à la plus compliquée.

    Avec un TlistBox et les variables (TSearchRecObj, TSearchRec) j'obtiens aussi un excellent résultat très rapidement avec la possibilité d'afficher la photo, le nom du fichier avec/sans la date, de choisir Décroissant/croissant (photo en attache).

    Si maintenant le résultat contenu dans mon TlistBox pouvait être récupéré par la procédure de l'affichage des vignettes c'est gagné mais….

    C'est la que je bloque car l'affichage des vignettes se trouve par l'ordre de placement dans le dossier.

    Je vais étudier ta solution et essayer de l'adapter avec une application de test on verra par rapport à mon test.

    @+,

    cincap
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/06/2008, 10h14
  2. Problème d'affichage des photos sous FireFox
    Par tdlimbourg dans le forum Débuter
    Réponses: 4
    Dernier message: 10/05/2008, 14h57
  3. Réponses: 1
    Dernier message: 05/05/2008, 20h56
  4. [PHP-JS] affichage des photos avec php
    Par madiabd dans le forum Langage
    Réponses: 6
    Dernier message: 09/10/2007, 11h54
  5. pb affichage des photos incorporées par balises html
    Par laville dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/04/2005, 11h47

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