cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
21 janv. 2007 à 13:44
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 2009
-
24 janv. 2007 à 20:17
Bonjour,
Projet Calendrier.
En supposant avec un "Tcaption", la routine "formatdatetime('dd/mm/yyyy',Now)" et un fichier ressource qui contiendrait des images pour les noms des jours (lundi...dimanche), le jour (1...31) et le mois (1...12).
Serait t'il possible afin d'alléger le code d'utiliser une routine qui détecterait le nom du jour et afficherait une image spécifique de la ressource de même pour le jour et pour le mois.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 21 janv. 2007 à 16:09
Salut,
{
Ex:
Dans le fichier de ressources :
WeekDay0 RCJPEG "dimanche.jpg"
Day1 RCJPEG "1.jpg"
Month1 RCJPEG "Janvier.jpg"
Les Images des jours de la semaine : de WeekDay0.jpg à WekkDay6.jpg (Dimanche 0 .. Samedi 6)
Les Images des jours du mois : de Day1.jpg à Day31.jpg
les l'images du mois : de Month1.jpg à Month12.jpg
}
procedure TForm1.Button1Click(Sender: TObject);
Const WDayBase = 'WeekDay';
DayBase = 'Day';
MonthBase = 'Month';
aMsg = 'Pour aujourd''hui il faut charger les fichiers suivants:'#13#10+
'Jour Semaine : %s'#13#10+
'Jour : %s'#13#10+
'Mois : %s';
Var SysTime : TSystemTime;
JourSemaine, Jour, Mois : String;
begin ZeroMemory(@SysTime, SizeOf(SysTime));
GetsystemTime(SysTime);
JourSemaine : = WDayBase + IntToStr(SysTime.wDayOfWeek);
Jour := DayBase + IntToStr(SysTime.wDay);
Mois := MonthBase + IntToStr(SysTime.wMonth);
ShowMessagefmt(aMsg, [JourSemaine, Jour, Mois]);
end ;
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 21 janv. 2007 à 16:59
Salut Cirec,
Sympa, ce bout de code.
Je me suis amusé à le tester un peu plus qu'avec Now et un TButton.
Pour ceux que ça intéresse, il suffit de rajouter un TMonthCalendar et un TLabel, de le placer dans MonthCalendar1Click() et de modifier deux lignes :
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 21 janv. 2007 à 18:13
Salut cincap,
Qu'il n'y ait pas de malentendu, je n'ai fait que tester le code de Cirec.
Je ne voudrais pas qu'on m'attribue le mérite qui lui revient entièrement, lol.
cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 21 janv. 2007 à 19:50
Bonsoir,
@ Japee, bien compris, chaque membre et chaque participant à déjà le mérite soit d'avouer qu'il est bloqué dans un code soit qu'il propose à sa manière une aide et son astuce.
Je pense que le forum n'est pas un concours à qui on remet une médaille de la plus pertinente des astuces.
Pour revenir sur cette idée, je vais remplacer les images par une voix féminine en *.wav qui sera dans le fichier ressource identifié pareillement.
WeekDay0 à 6 WAVE "dimanche.Wav"
Day1 à 31 WAVE "1.Wav"
Month1 à 12 WAVE "Janvier.Wav"
Le hic, il faut extraire les bons fichiers qui correspondent à
WDayBase = 'WeekDay';
DayBase = 'Day';
MonthBase = 'Month';
et les jouer, la j'avoue je cale mais je persiste, peut être l'âge !
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 22 janv. 2007 à 18:24
Voici la solution:
procedure PlayWave(ResName : String);
Var p : Pointer;
h : THandle;
begin Try H := LoadResource(hInstance, FindResource(hInstance, PChar(ResName), 'WAVE'));
P := LockResource(H);
playSound(p, 0, SND_SYNC Or SND_MEMORY);
Finally UnLockResource(H);
End;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin PlayWave('jour1');
PlayWave('Jour2');
PlayWave('Jour3');
end;
Cette fois les trois Waves sont joués l'un après l'autre
ps : si tu cliques sur TSystemTime et tu presses F1 tu obtiens toutes les variables contenues dans TSystemTime où dans l'EDI tu écris : SysTime, tu y ajoutes un point (SysTime.) et tu attends (de 0,5 à 1,5 secondes) et un popup s'ouvre avec toutes les possibilitées
le délai se règle dans les Options d'environnement --> onglet --> Fonctionnalités automatiques