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

C++Builder Discussion :

Quelques petites questions [Langage/Algorithme]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut Quelques petites questions
    Bonjour à tous,

    voilà dans mon programme pour chercher si il y a un anniversaire aujourd'hui je teste LE jour de l'année avec celui de la date de naissance de la personne, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TDate d = Now() ;
    TDate date = Q_Ajouter->FieldByName("dateNaissance")->AsDateString;
    if(DayOfYear(date) == DayOfYear(d))
    {
      HAPPY BIRTHDAY !
    }
    Bref ce code marche, mais pas pour toutes les années, j'explique :
    Des fois j'ai un décalage d'un jour entre la vraie date d'anniversaire et celle que je trouve, notamment avec les années 2000 et 1840.
    Evidemment j'ai pensé aux années bissextiles, mais je sais pas comment vérifier cette théorie, et surtout comment remédier à ce problème !


    Second problème, j'ai un TImage qui affiche donc une image, j'aimerai qu'il libère l'image pour qu'il redevienne "vide" si possible, y a une méthode pour ça ?

    Merci bcp.

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Pour ton problème de date, tu peux utiliser la fonction DecodeDate, puis tester le jour et le mois.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WORD y1, m1, d1, y2, m2, d2;
    TDate d1= Date();
    TDate d2 = [...]
    DecodeDate(d1, y1, m1, d1);
    DecodeDate(d2, y2, m2, d2);
    if( (d1==d2) && (m1==m2))
    ///[...]
    Pour ton problème d'image, tu peut effectuer un delete pour libérer l'image, puis affecter NULL...

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Yep merci beaucoup j'ai testé le DecodeDate et il marche impeccable, me reste à tester pour l'image.

    J'ai un autre problème :

    Je souhaite que mon programme se lance au démarrage de Windows, j'ai utilisé la méthode du tuto de Builder, à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      TRegistry *Reg = new TRegistry();
      Reg->RootKey = HKEY_LOCAL_MACHINE;
      Reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
      Reg->WriteString("AnniversaireM", "C:\\Users\\__sPiKe__\\Desktop\\Projets\\Anniversaire\\Debug\\AnniversaireM.exe");
      delete Reg;
    Ensuite mon programme se connecte à une BdD MS Access :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      AnsiString strDir = "..\\BdD\\BdDAnniversaire.mdb" ;
     
      try{
    		ADOConnection1->ConnectionString ="Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties=""DBQ="
    									+ (AnsiString)strDir + ";DefaultDir=" + (AnsiString)strDir
                                        + ";Driver={Driver do Microsoft Access (*.mdb)};DriverId=25;FIL=MS Access;FILEDSN="
                                        + (AnsiString)strDir + ";MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5"
    									+ ";SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;";
    	ADOConnection1->Open();
    Lorsque mon PC démarre il lance bien le programme, mais il ne trouve pas la base de données ! Je ne sais pas pourquoi.. Une idée ?

  4. #4
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Change ton path relatif vers un path absolu. C'est juste une idée, qui a des chances de ne pas fonctionner

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Finalement j'ai mis le chemin complet de la base de données et ça fonctionne

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Si tu veux faire un chemin dynamique, tu peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String RepApp = ExtractFilePath(Application -> ExeName) ;
    ensuite tu utilises RepApp pour accéder à la BDD.

  7. #7
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Interessant, je vais tester ça, merci bien je vous tiens au courant :=)

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Une autre question, peut-on mettre un cadre autour d'un TIMage ?

  9. #9
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Tu peux utiliser un TBevel, ou alors placer ton TImage dans un TPanel pour avoir un effet de cadre.

  10. #10
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Si tu cherches à dessiner manuellement un cadre autour du TIMage, tu peux tracer une rectangle par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... -> Canvas -> Rectangle(X, Y, X', Y') ;


  11. #11
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Par défaut
    Le truc c'est que mon TImage est dynamique, il s'adapte à la forme de l'image qu'il contient, je vais exploiter vos solutions, merci beaucoup.

  12. #12
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Avec la solution que t'as donné sat83, tu peux mettre AutoSize du TBevel à true

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

Discussions similaires

  1. [Séparer son code] quelques petites questions.
    Par echantillon dans le forum C
    Réponses: 33
    Dernier message: 07/03/2007, 17h29
  2. quelques petites questions
    Par la debutante dans le forum Windows
    Réponses: 1
    Dernier message: 20/12/2006, 09h08
  3. quelques petites questions sur les windows form
    Par natasha84 dans le forum C++/CLI
    Réponses: 22
    Dernier message: 25/05/2006, 22h14
  4. Quelques petites questions sur le shell
    Par Badaboumpanpan dans le forum Linux
    Réponses: 8
    Dernier message: 01/04/2006, 00h09
  5. [Tk] Quelques petites questions
    Par Damian dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/02/2006, 16h34

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