| 12
 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
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 
 |  
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
#include <vfw.h>
#include "FicheVideo.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
//Lier le handle à l'animate.
   Handle = Animate1->Handle;
//Créer une capture video de 640*480.
   Handle = capCreateCaptureWindow( NULL, WS_CHILD|WS_VISIBLE,
                                        0, 0, 640, 480, Handle, 0);
//Connecter le driver.
   capDriverConnect(Handle, 0);
//Initialiser le taux de rafraichissement a 66ms.
   capPreviewRate  (Handle, 66);
//Démarer la preview video.
   capPreview      (Handle, true);
// ces deux boutons ne s'affichent qu'aprés la saisie d'un temps
Button3->Visible = false;
Button4->Visible = false;
}
//---------------------------------------------------------------------------
 
//Si tu cré un bouton en cliquant dessus tu vas sauvegarder une photo .bmp.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// prendre une seule photo
AnsiString Fichier;
char photo[1024];
AnsiString chaine;
AnsiString date_heure;
	capCaptureSingleFrameOpen(Handle);
	capCaptureSingleFrame(Handle) ;
	capCaptureSingleFrameClose(Handle) ;
// on ajoute un index entre "photo et .bmp" afin d'avoir un nom different
// afin de ne pas ecraser le nom precedent il y est inclu l'heure et la
// date sous forme
// heure, minute, seconde, sans separateur
// jour, mois, annee, sans separateur
// il ne faut aucun separateur dans la chaine que l'on
// envoye comme nom de fichier
date_heure = FormatDateTime("HHMMSSDDMMYYYY",Now());
Fichier = ("photo" + IntToStr(i) + date_heure + ".bmp");
chaine = ("C:\\Documents and Settings\\blondelle\\Mes documents\\PHOTO_WEBCAM\\" + Fichier);
// copier la photo a l'adresse chaine
capFileSaveDIB(Handle, chaine.c_str());
i++;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// on arrete la WebCam
        // arret de la webcam
capDriverDisconnect(Handle);
        // effacer Animate
Animate1->Visible = false;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
// on arrete la WebCam au cas ou on n'a pas arrete la WebCam
        // arret de la webcam
capDriverDisconnect(Handle);
        // effacer Animate
Animate1->Visible = false;
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 
Label5->Caption = "";
Label6->Caption = "Timer Arreté";
// et dans ton Timer:
Timer1->Enabled = false;
// ShowMessage("Arret timer "); utilise pour les testes
// ShowMessage("Arret timer ");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
// For an example of the callback function OneShotCallback, see Writing
// a Timer Callback Function.
Label6->Caption = "";
Label5->Caption = "Timer Demarré";
// on n'admet pas de temps inférieur a 5 secondes
if (temps_calcule <= 5)
{
temps_calcule = 5000;
}
Timer1->Interval = StrToInt (temps_calcule); //60 secondes
Form1->Label1->Caption = "";
Form1->Label1->Caption = temps_calcule;
Timer1->Enabled = true;
 
if (Timer1->Enabled == true)
{
// ShowMessage("timer"); utilise pour les testes
// ShowMessage("timer");
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
AnsiString Fichier;
char photo[1024];
AnsiString chaine;
AnsiString date_aujourdui;
AnsiString heure;
	capCaptureSingleFrameOpen(Handle);
	capCaptureSingleFrame(Handle) ;
	capCaptureSingleFrameClose(Handle) ;
// on ajoute un index entre "photo et .bmp" afin d'avoir un nom different
// afin de ne pas ecraser le nom precedent il y est inclu l'heure et la
// date sous forme
// heure, minute, seconde, sans separateur
// jour, mois, annee, sans separateur
// il ne faut aucun separateur dans la chaine que l'on
// envoye comme nom de fichier
date_aujourdui = FormatDateTime("DDMMYYYY",Now());
heure = FormatDateTime("HHMMSS",Now());
Fichier = ("photo" + IntToStr(i) + heure + date_aujourdui + ".bmp");
chaine = ("C:\\Documents and Settings\\blondelle\\Mes documents\\PHOTO_WEBCAM\\" + Fichier);
// copier la photo
capFileSaveDIB(Handle, chaine.c_str());
i++;
// ShowMessage("timer"); utilise pour les testes
// ShowMessage("timer ");
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
// on ne peux saisir que des chiffres sans decimale
//if ((Key < '0' || Key >'9') && Key != 8 && (Key != DecimalSeparator ||
//((TEdit *)Sender)->Text.Pos(DecimalSeparator)!=0))
//Key = NULL;
 
if ((Key < '0' || Key >'9') && Key != 8 && (Key == DecimalSeparator)) Key = NULL;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button5Click(TObject *Sender)
{
// on soisi le temps du Timer
AnsiString heures;
AnsiString minutes;
AnsiString secondes;
 
heures = Edit1->Text;
if (heures != 0);
{
heures = heures * 3600;
}
minutes = Edit2->Text;
if (minutes != 0);
{
minutes = minutes * 60;
}
secondes = Edit3->Text;
if (secondes != 0);
{
secondes = secondes;
}
temps_calcule = 1000 * (StrToInt (heures) + StrToInt (minutes) + StrToInt (secondes));
Label1->Caption = temps_calcule;
// un temps a été choisi alors on affiche les deux boutons
Button3->Visible = true;
Button4->Visible = true;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
if ((Key < '0' || Key >'9') && Key != 8 && (Key == DecimalSeparator)) Key = NULL;
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Edit3KeyPress(TObject *Sender, char &Key)
{
if ((Key < '0' || Key >'9') && Key != 8 && (Key == DecimalSeparator)) Key = NULL;
}
//--------------------------------------------------------------------------- |