Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2794 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  C++ Builder et saisie de données dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ Builder et saisie de données dynamique

n°799180
luciesene
Posté le 19-07-2004 à 09:22:50  profilanswer
 

Bonjour à tous,
Je programme avec C++ Builder et j'aimerais que dans une fonction, mon programme ouvre une fenêtre graphique me permettant de récupérer deux dates et d'utiliser ces dates dans la suite de ma fonction.
Quelqu'un peut-il m'aider à programmer ceci car j'avoue que je suis un peu perdue...
Merci d'avance.
Lucie
 

mood
Publicité
Posté le 19-07-2004 à 09:22:50  profilanswer
 

n°799195
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 09:38:49  profilanswer
 

http://cplusplus.com/ref/ctime/time.html
http://cplusplus.com/ref/ctime/gmtime.html


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799202
luciesene
Posté le 19-07-2004 à 09:44:20  profilanswer
 

En fait, je voudrais saisir les dates dans une fenêtre.
afin que lorsque je lance l'exécutable, une fenêtre souvre avec écrit: "saisir les dates" et ensuite utiliser ces deux dates dans ma fonction.
Est-ce que je peux ajouter la programmation de ma fenêtre dans ma fonction?
je suis désolée mais je suis un peu perdue.
 

n°799204
luciesene
Posté le 19-07-2004 à 09:46:25  profilanswer
 

Voilà la fonction dans laquelle je voudrais ajouter l'ouverture de ma fenêtre et je voudrais utiliser les dates saisie dans la fonction:getImmCONFCLFRequest() par la suite
 
 
void __fastcall ThreadScrutation::scrutConfClf()
{
 
try
{
    TDateTime dt = TDateTime::CurrentTime();
    if (dt < Parameter::getInstance().getCONFCLFBeginScrut() || dt > Parameter::getInstance().getCONFCLFEndScrut())
        return;
 
    TQuery *qr = NULL;
    String strTransMode, strTipe;
 
    try
    {
        qr = DataModuleScrutation->getImmCONFCLFRequest();
 
        if(NULL == qr)
            return;
        qr->First();
 
        while (!qr->Eof)
        {
            ExtractTableConfClf * ext = NULL;
 
 
            strTransMode = qr->FieldByName("transmode" )->AsString;
            strTipe = qr->FieldByName("Tipe" )->AsString;
            if( (strTransMode == "N" || strTransMode == "M" ) &&
                ( strTipe == "CONF" || strTipe == "DEVIS" ) )
            {
                ext =  new ExtractTableConfClf(BON_CONF_SEJOUR);
            }else
            if( strTransMode == "M"  && strTipe == "ANNUL" )
            {
                ext =  new ExtractTableConfClf(RELEVE_FRAIS_ANNUL);
            }
 
            if(NULL != ext)
            {
                ext->init(qr);
 
                if(!QueueProd::getInstance().isExist(ext))
                    QueueProd::getInstance().add(ext);
            }
             
            qr->Next();
        }
 
    }
    __finally
    {
        qr->Close();
    }
 
    if( dt < Parameter::getInstance().getCONFCLFBatchScrut())
        return;
 
    qr = NULL;
 
    try
    {
        qr = DataModuleScrutation->getBatchCONFCLFRequest();
 
        if(NULL == qr)
            return;
        qr->First();
        while (!qr->Eof)
        {
            ExtractTableConfClf * ext = NULL;
 
 
            strTransMode = qr->FieldByName("TransMode" )->AsString;
            strTipe = qr->FieldByName("tipe" )->AsString;
            if( (strTransMode == "N" || strTransMode == "M" ) &&
                ( strTipe == "CONF" || strTipe == "DEVIS" ) )
            {
                ext =  new ExtractTableConfClf(BON_CONF_SEJOUR);
            }else
            if( strTransMode == "M"  && strTipe == "ANNUL" )
            {
                ext =  new ExtractTableConfClf(RELEVE_FRAIS_ANNUL);
            }
 
            if(NULL != ext)
            {
                ext->init(qr);
 
                if(!QueueProd::getInstance().isExist(ext))
                    QueueProd::getInstance().add(ext);
            }
             
            qr->Next();
        }
    }
    __finally
    {
        qr->Close();
    }
}
catch(Exception & e)
{
 
  m_strError = "Erreur dans l'intérrogation de la table CONFCLF : " + e.Message;
  Synchronize(launchError);
}
 
}

n°799209
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 09:48:47  profilanswer
 

c'est pas un problème de date alors...
 
tu instancies au démarrage de l'applic une 2ème Form que tu caches (ou mieux, tu instancies quand tu as besoin)
 
pour récupérer les date, tu peux utiliser une fonction publique de Form1 qui va valoriser ces 2 variables.  
 
Finalement, tu détruits Form2


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799216
luciesene
Posté le 19-07-2004 à 09:51:33  profilanswer
 

je vois pas trop comment faire ça...
en fait, je veux dire à mon programme :ouvre une fenêtre où je saisie deux dates!! (je suis un peu naive...)
je connais pas trop c++ builder pour la programmation graphique...

n°799234
luciesene
Posté le 19-07-2004 à 10:04:19  profilanswer
 

est-ce que je peux instancier le 2ème form dans ma fonction? et comment faire cela?

n°799236
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 10:05:52  profilanswer
 

oui tu peux.
 
ben. tu fais un new form, .parent =this (form1 donc) et un visible = true


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799265
luciesene
Posté le 19-07-2004 à 10:13:06  profilanswer
 

je suis désolée...
est-ce que tu peux me dire ce que je dois faire exactement...
Il faut quand même que je fasse une nouvelle fiche?
Ou alors, je peux simplement ecrire l'instancification?
Comment donner les caractéristiques de ma fenêtre : taille, écrire ce que je veux dedans?
merci ...
je suis un peu un gros boulet là...
 

n°799272
luciesene
Posté le 19-07-2004 à 10:15:32  profilanswer
 

Peux-tu me montrer comment coder ça dans ma fonction s'il-te-plait?

mood
Publicité
Posté le 19-07-2004 à 10:15:32  profilanswer
 

n°799338
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 10:47:35  profilanswer
 

je te l'ai expliqué mais j'ai pas Borland C++ Builder sous la main là. De toute façon, je vais pas te coder ce truc (ça te rendrait pas service)
 
tu dois créer une form avec les boutons et tout, que tu instancies et caches au chargement de la première


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799377
luciesene
Posté le 19-07-2004 à 11:06:37  profilanswer
 

Si je comprends
Je crée ma fiche avec mes bouton.
Elle d'appelle form 2  
Je la rends invisible au début. (peux-tu juste me dire comment faire stp)
ensuite, dans ma fonction, ej l'instancifie.
elle apparaîtra donc...
=> je la rend visible.
et après, je la ferme à la fin de ma fonction.
merci.

n°799384
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 11:09:23  profilanswer
 

luciesene a écrit :

Si je comprends
Je crée ma fiche avec mes bouton.
Elle d'appelle form 2  
Je la rends invisible au début. (peux-tu juste me dire comment faire stp)
ensuite, dans ma fonction, ej l'instancifie.
elle apparaîtra donc...
=> je la rend visible.
et après, je la ferme à la fin de ma fonction.
merci.


soit tu l'instancie (new) au début et que tu la caches (visible=true|false)
 
soit tu l'instancie à la demande.
 
essaie la première version, plus simple au début


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799388
luciesene
Posté le 19-07-2004 à 11:10:26  profilanswer
 

Ok merci, j'essaye au début.

n°799409
luciesene
Posté le 19-07-2004 à 11:21:58  profilanswer
 

j'ai créé ma fiche :  
class TForm2 : public TForm
{
__published: // Composants gérés par l'EDI
        TLabel *Label1;
        TEdit *Edit1;
        TEdit *Edit2;
        TLabel *Label2;
        TLabel *Label3;
        TButton *Button1;
private: // Déclarations de l'utilisateur
public:  // Déclarations de l'utilisateur
        __fastcall TForm2(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
 
Je la déclare maintenant dans ma fonction?
c'est ça?
 
 

n°799464
luciesene
Posté le 19-07-2004 à 12:02:42  profilanswer
 

Je n'arrive pas à la déclarer.
faut-il que je rajoute des librairies?

n°799472
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2004 à 12:06:03  profilanswer
 

JagStang a écrit :

et que tu la caches (visible=true|false)


 
ShowModal plutôt, pour que la fonction attende que l'utilisateur ait refermé la seconde fenêtre avant de continuer


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°799481
luciesene
Posté le 19-07-2004 à 12:10:34  profilanswer
 

Je suis pénible mais je suis perdue.
comment faire pour que ma deuxième s'affiche dans la fonction que j'ai mise plus haut?

n°799597
luciesene
Posté le 19-07-2004 à 14:30:12  profilanswer
 

J'ai à nouveau une question,
Quelle est la différence entre les fiches et les cadres de C++ Builder?
pour que l'utilisateur de l'application saississe deux dates, il vaut miuex utiliser une fiche ou un cadre?
merci,
lucie

n°799600
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2004 à 14:37:44  profilanswer
 

Un cadre (frame) sert à faire un genre de morceau de fenêtre réutilisable que l'on peut mettre sur plusieurs fenêtres (fenêtre = form/fiche).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°799604
luciesene
Posté le 19-07-2004 à 14:40:43  profilanswer
 

ok donc vaut mieux utiliser une fiche alors.

n°799609
luciesene
Posté le 19-07-2004 à 14:53:45  profilanswer
 

J'aimerais que l'utilisateur rentre deux dates que j'utiliserais dans la suite du programme.
Est ce que je dois déclarer les dates au niveau de la fiche?

n°799610
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-07-2004 à 14:57:23  profilanswer
 

Tu fais une nouvelle fiche où tu mets deux TDateTimePicker, et deux boutons. Pour le bouton OK tu mets ModalResult à mrOK et le bouton Cancel tu mets ModalResult à mrCancel.
 
puis tu fais dans ta fonction :
 
if(Form2->ShowModal()==mrOK)
{
  // l'utilisateur a cliqué OK après
  // avoir choisi les dates, alors on continue
  date1 = Form2->DateTimePicker1->Date;
  date2 = Form2->DateTimePicker2->Date;
  // la suite de ton traitement
}
 
où date1 et date2 sont déclarés comme des TDateTime (à toi ensuite de voir si tu dois les convertir en un autre format de date)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°799617
luciesene
Posté le 19-07-2004 à 14:59:44  profilanswer
 

je vais essayer ça!!
merci beaucoup, ça va bien m'aider je pense!!

n°799686
luciesene
Posté le 19-07-2004 à 16:16:08  profilanswer
 

merci beaucoup!!
ça m'a bien fait avancer!!!

n°799757
luciesene
Posté le 19-07-2004 à 16:48:17  profilanswer
 

je reviens sur l'exécution de mon programme :  
je crée un exécutable mais mon problème est que mon programme ne s'éxécute qu'une seule fois au premier clic sur le bouton.
si je veux lancer une deuxième fois le programme, je dois fermer ma fenêtre et relancer l'éxécutable...
 
Auriez vous une idée sur la cause?
 
merci encore

n°799758
jagstang
Pa Capona ಠ_ಠ
Posté le 19-07-2004 à 16:49:00  profilanswer
 

quel bouton ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°799763
luciesene
Posté le 19-07-2004 à 16:51:16  profilanswer
 

le bouton de ma première fiche.
je rentre aussi les dates à ce niveau.
je lance ensuite tout mon programme( c'est un extracteur de données)
mais quand il a fini et que je change les dates, il ne fait rien...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  C++ Builder et saisie de données dynamique

 

Sujets relatifs
[BDD] Quel logiciel utilisez-vous pour dessiner vos bases de données ?[VBA Excel] récupérer des données de table Access dans Excel en VBA
pb apostrophe pour saisie de texte dans bdd mysqlpbs avec cscharp builder edition perso
Taille maximale du fichier de donnéesC++ Builder & barre de navigation (outlook style)
Perdu ds la base de données...fichiers INCLUDE + Base de Données + dynamique + pb de Mise A Jour
formulaire de saisie php html 
Plus de sujets relatifs à : C++ Builder et saisie de données dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR