begin process at 2010 02 10 08:01:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Composants

 > DATETIMEPICKER : AJOUT DE FONCTIONS

DATETIMEPICKER : AJOUT DE FONCTIONS


 Information sur la source

Note :
Aucune note
Catégorie :Composants Classé sous :dériver, composant, datetimepicker Niveau :Débutant Date de création :23/04/2009 Date de mise à jour :23/04/2009 17:22:34 Vu / téléchargé :1 756 / 266

Auteur : simonpelloquin

Ecrire un message privé
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
A partir d'un code de DelphiProg qui nous proposait de dériver les composants existants ponctuellement et sans installation de quoi que ce soit, j'ai fait cette petite unité pour me faciliter la vie...

L'unité UMDF_DateTimePicker permet donc de rajouter les petites fonctions (de fainéant) suivantes :
- StrDate : Renvoie la date en string
- QRYDate : Renvoie la date en format 'mm/dd/yy' utilisable directement dans une requête SQL
- WeekNo : Renvoie le n° de la semaine (nécessite la jcl, à désactiver si vous ne l'avez pas)

Une deuxième fonction peut s'avérer utile pour les sélections de période :
Mode d'emploi :
Sur la form, on pose deux DateTimePicker (DTP1 et DTP2)
on ajoute UMDF_DateTimePicker dans la liste des uses et on déclare le type :
TDateTimePicker = Class(UMDF_DateTimePicker.TDateTimePicker);
(NB : Pour une utilisation récurrente, on peut créer un dossier "Composants Modifiés" et l'ajouter dans la liste des chemins de Delphi)
Sur le FormCreate de la form, on met DTP1.LinkedDTP := DTP2;
On gére l'événement OnCloseUp du DTP1 et on rattache celui du DTP2 à ce même événement.
Et maintenant, quand on choisit une date dans le DTP1, un popup apparait pour proposer une période (1 jour, 1 mois ...). Et quand on clique sur un item du popup, ça déclenche l'événement OnCloseUp.

La propriété Reversed permet de choisir une période inversée (i.e. D'aujourd'hui à il y a un an)

Voilà, ce code ne constitue pas une révolution de la programmation, mais personnellement, ça me fait gagner pas mal de temps.

Vos commentaires, idées et corrections sont les bienvenus...

(Ou si vous avez des modifications de la sorte sur d'autres composants...)



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

23 avril 2009 17:22:34 :
Erreur de frappe dans la description

 Sources du même auteur

DELPHI HYPERFILE PAR ODBC
Source avec Zip Source avec une capture RENOMMER DES COMPOSANTS
JOURS FERIES
Source avec Zip STREAMZIP
Source avec Zip CONSOLE INTERBASE FIREBIRD

 Sources de la même categorie

Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip DYNAMIC LIBRARY LOADER CLASS: GAGNEZ DU TEMPS POUR CHARGER L... par f0xi
Source avec Zip Source avec une capture COMPOSANTS NDSOFT par diglas
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip COMPOSANT TTHRESCOLLECTION par ThWilliam

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture TQGRID UN STRINGGRID AMÉLIORER. par yanb
Source avec Zip Source avec une capture GESTION DES "CRASHS D'APPLICATION" par Bacterius
Source avec Zip Source avec une capture UN JOLI BOUTON ! par Bacterius
Source avec Zip Source avec une capture COMPOS TCYCOMPONENTS V2.6 par MAURICIO
Source avec Zip Source avec une capture TRAYICON - VOTRE ICONE DANS LA BARRE DES TACHES par Bacterius

Commentaires et avis

Commentaire de f0xi le 24/04/2009 19:18:37 administrateur CS

vire l'unité JVCL! utilise l'unité DateUtils (natif)!

tu peux ajouter en plus :

type
  TDateTimePicker = class(ComCtrls.TDateTimePicker)
  private
  public
    function DateLong : string;
    function DateShort : string;
    function DayLongNameStr :  string;
    function DayShortNameStr : string;
    function MonthLongNameStr : string;
    function MonthShortNameStr : string;
    function DayOfWeek : integer;
    function DayOfYear : integer;
    function DayInMonth : integer;
    function DayInYear : integer;
    function WeekOfMonth : integer;
    function WeekOfYear : integer;
    function WeekInYear : integer;
    function IsLeapYear : boolean;
  end;

{ TDateTimePicker }

function TDateTimePicker.DateLong: string;
begin
  DateTimeToString(result, 'dddddd', Self.DateTime);
end;

function TDateTimePicker.DateShort: string;
begin
  DateTimeToString(result, 'ddddd', Self.DateTime);
end;

function TDateTimePicker.DayInMonth: integer;
begin
  result := DaysInMonth(Self.DateTime);
end;

function TDateTimePicker.DayInYear: integer;
begin
  result := DaysInYear(Self.DateTime);
end;

function TDateTimePicker.DayLongNameStr: string;
begin
  DateTimeToString(result, 'dddd', Self.DateTime);
end;

function TDateTimePicker.DayOfYear: integer;
begin
  result := DayOfTheYear(Self.DateTime);
end;

function TDateTimePicker.DayOfWeek: integer;
begin
  result := DayOfTheWeek(Self.DateTime);
end;

function TDateTimePicker.DayShortNameStr: string;
begin
  DateTimeToString(result, 'ddd', Self.DateTime);
end;

function TDateTimePicker.IsLeapYear: boolean;
begin
  result := IsInLeapYear(Self.DateTime);
end;

function TDateTimePicker.MonthLongNameStr: string;
begin
  DateTimeToString(result, 'mmmm', Self.DateTime);
end;

function TDateTimePicker.MonthShortNameStr: string;
begin
  DateTimeToString(result, 'mmm', Self.DateTime);
end;

function TDateTimePicker.WeekInYear: integer;
begin
  result := WeeksInYear(Self.DateTime);
end;

function TDateTimePicker.WeekOfMonth: integer;
begin
  result := WeekOfTheMonth(Self.DateTime);
end;

function TDateTimePicker.WeekOfYear: integer;
begin
  result := WeekOfTheYear(Self.DateTime);
end;

Commentaire de simonpelloquin le 25/04/2009 08:58:22

Bonjour aussi fOxi ;)

Merci pour les suggestions, je les intégre la semaine prochaine (je suis sur fedora le week end...)
Concernant le DateUtils, je me rappelle plus trop mais il me semble que le problème c'est que le weeknumber considère que le premier jour de la semaine est le dimanche, alors que le IsoWeekNumber de la jcl est bien le lundi. Je vérifierai ça et verrai si je peux le corriger (au pire, je récupèrerai la fonction).

bon week end
Simon

Commentaire de f0xi le 25/04/2009 13:03:08 administrateur CS


Remarque: WeekOfTheYear définit la semaine d'après la norme ISO 8601. La semaine commence le lundi et s'achève le dimanche.

Commentaire de Bacterius le 25/04/2009 17:38:53

Je crois qu'il est possible de choisir le jour de début de la semaine quelque part dans DateUtils (on peut le faire à l'initialisation du projet, par exemple, on choisit la norme qu'on veut adopter).

Cordialement, Bacterius !

Commentaire de cavalier2400 le 14/07/2009 09:39:52

il y'a de fct dans DateUtils pour le choix du 1er Jours de la semaine, j'utilise ces deux fonctions pour mon agenda de bureau, et je réussi le décalage, puisque le week end ici est un vendredi.
jw// est le jour de la semaine
y //est la date courante du date time picker // le décalage des semaines se fait toujours à partir du lundi jour numéro un...

placer les divers labels pour tester,

     procedure testj( d:string);
     var js1:integer;
     begin
     rdv1.Monthcalendar1.date:= strtodate(d);
     if dayoftheweek(rdv1.Monthcalendar1.date - 5) >0 then js1:= dayoftheweek(rdv1.Monthcalendar1.date - 5)
     else js1:= js1+2;
     jw:=js1;
     end;
    procedure cadrelejour();
    begin
   testj(datetostr(rdv1.monthcalendar1.Date));
   if weekof(rdv1.monthcalendar1.Date+2)= weekof(date()+2) then

begin
testj(datetostr(date()));
if  jw=1 then begin
rdv1.label12.Font.Color  := clwhite; rdv1.label12.Transparent := false; rdv1.label12.Color := clblack;
end ;

if  jw=2 then begin
rdv1.label13.Font.Color  := clwhite;rdv1.label13.Transparent := false; rdv1.label13.Color := clblack;
end ;

if  jw=3 then begin
rdv1.label14.Font.Color  := clwhite; rdv1.label14.Transparent := false; rdv1.label14.Color := clblack;
end ;

if  jW=4 then begin
rdv1.label15.Font.Color  := clwhite; rdv1.label15.Transparent := false;rdv1.label15.Color := clblack;
end;

if jw=5 then begin
rdv1.label16.Font.Color  := clwhite;  rdv1.label16.Transparent := false; rdv1.label16.Color := clblack;
end;

if  jw=6 then begin
rdv1.label17.Font.Color  := clwhite;  rdv1.label17.Transparent := false; rdv1.label17.Color := clblack;
end ;

if  jw=7 then begin
rdv1.label18.Font.Color  := clwhite;rdv1.label18.Transparent := false; rdv1.label18.Color := clblack;
end;  end;   end;



procedure affectiondesjours(d:string) ;

begin
begin
testj(d);
  y:= (datetostr(rdv1.MonthCalendar1.Date)) ;
//------------1-------SAMEDI
if jw=1 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack;label14.Transparent := true; label12.Caption := inttostr(dayof(strtodate(y)+0));
label13.Caption := inttostr(dayof(strtodate(y)+1));label14.Caption := inttostr(dayof(strtodate(y)+2));
label15.Caption := inttostr(dayof(strtodate(y)+3)); label16.Caption := inttostr(dayof(strtodate(y)+4));
label17.Caption := inttostr(dayof(strtodate(y)+5)); label18.Caption := inttostr(dayof(strtodate(y)+6));
dbgrid1.SetFocus ;
end;
end;

//------------2-------DIMANCHE
if jw=2 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack; label14.Transparent := true; label12.Caption := inttostr(dayof(strtodate(y)-1));
label13.Caption := inttostr(dayof(strtodate(y)+0));  label14.Caption := inttostr(dayof(strtodate(y)+1));
label15.Caption := inttostr(dayof(strtodate(y)+2)); label16.Caption := inttostr(dayof(strtodate(y)+3));
label17.Caption := inttostr(dayof(strtodate(y)+4)); label18.Caption := inttostr(dayof(strtodate(y)+5));
dbgrid2.SetFocus ;
end; end;

//------------3-------Lundi
if jw=3 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack;label14.Transparent := true;label12.Caption := inttostr(dayof(strtodate(y)-2));
label13.Caption := inttostr(dayof(strtodate(y)-1)); label14.Caption := inttostr(dayof(strtodate(y)+0));
label15.Caption := inttostr(dayof(strtodate(y)+1)); label16.Caption := inttostr(dayof(strtodate(y)+2));
label17.Caption := inttostr(dayof(strtodate(y)+3));  label18.Caption := inttostr(dayof(strtodate(y)+4));
dbgrid3.SetFocus ;
end;
end;

  //------------4-------Mardi
if jw=4 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack;label14.Transparent := true; label12.Caption := inttostr(dayof(strtodate(y)-3));
label13.Caption := inttostr(dayof(strtodate(y)-2)); label14.Caption := inttostr(dayof(strtodate(y)-1));
label15.Caption := inttostr(dayof(strtodate(y)+0)); label16.Caption := inttostr(dayof(strtodate(y)+1));
label17.Caption := inttostr(dayof(strtodate(y)+2)); label18.Caption := inttostr(dayof(strtodate(y)+3));
dbgrid4.SetFocus ;
end;
end;
   //------------5-------Mercredi
if jw=5 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack;label14.Transparent := true;label12.Caption := inttostr(dayof(strtodate(y)-4));
label13.Caption := inttostr(dayof(strtodate(y)-3));label14.Caption := inttostr(dayof(strtodate(y)-2));
label15.Caption := inttostr(dayof(strtodate(y)-1));label16.Caption := inttostr(dayof(strtodate(y)+0));
label17.Caption := inttostr(dayof(strtodate(y)+1)); label18.Caption := inttostr(dayof(strtodate(y)+2));
dbgrid5.SetFocus ;
end;
end;
//------------6-------jeudi
if jw=6 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack; label14.Transparent := true;label12.Caption := inttostr(dayof(strtodate(y)-5));
label13.Caption := inttostr(dayof(strtodate(y)-4)); label14.Caption := inttostr(dayof(strtodate(y)-3));
label15.Caption := inttostr(dayof(strtodate(y)-2)); label16.Caption := inttostr(dayof(strtodate(y)-1));
label17.Caption := inttostr(dayof(strtodate(y)+0)); label18.Caption := inttostr(dayof(strtodate(y)+1));
dbgrid6.SetFocus ;
end;
end;
//------------7-------Vendredi
if jw=7 then
begin
with rdv1 Do
begin
label14.Font.Color  := clblack; label14.Transparent := true;  label12.Caption := inttostr(dayof(strtodate(y)-6));
label13.Caption := inttostr(dayof(strtodate(y)-5));label14.Caption := inttostr(dayof(strtodate(y)-4));
label15.Caption := inttostr(dayof(strtodate(y)-3)); label16.Caption := inttostr(dayof(strtodate(y)-2));
label17.Caption := inttostr(dayof(strtodate(y)-1)); label18.Caption := inttostr(dayof(strtodate(y)+0));
dbgrid7.SetFocus ;
end; end;  end; end;

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Pb : Le composant internet de delphi [ par infohelp ] Bonjour je cherche le composant similaire d'acces a internet de visual basic (winsock) mais le meme avec les meme fonctions et qui prenent les proxy c Utiliser TIdMappedPortTCP """Composant Indyserver""" [ par PsyckoHia ] SaLuT je cherche a utiliser TIdMappedPortTCP qui se trouve dans Indy seveur , Est ce que qq'un peux me donner un exemple simple,à part celui qui est Composant clientsocket [ par MeuhMeuh ] Bonjour,Je voudrais savoir s'il est possible de positionner des FLAGS (RST,FIN,OOB...) quand on envoie des données avec le composant Client Socket, si Programme console et composant database [ par VTCFMAN ] Peut-on utiliser les composants Database dans un programme console avec ou sans module de données ?. Si non existe-t-il des des librairies permettant URGENT : problème d'installation de composant [ par Henri ] problème d'installationBonjour,Je vous remercie de résoudre le problème suivant :Je voudrais installer un composant téléchargé sans son fichier *.pas composant webbrowser [ par vib ] Bonjour, Je débute en Delphi.Je désire récupéré le contenu d'une page Html à partir du composant Webbrowser.J'ai utilisé ce composant avec VB, proprié TNMPOP3 composant [ par Steph ] j'ai essayé d'utiliser le composant TNMPOP3 (FastNet) pour afficher le nombre de messages reçus (non lus ?) dans ma boite aux lettres Outlook.Pour cel Création dynamique de composant [ par Amadeus ] Comment créer dynamique des contrôle TImage ?Je voudrais créer sur une Form autant de TImage que d'image se trouvant dans un répertoire donné. Comment composant de l'explorateur [ par vib ] Bonjour,Quelqu'un pourrit il me dire ou trouver le composant qui liste les fichiers dans l'explorateur et qui permet d'un simple clic sur l'entête de propriété d'un composant à partir de 'components' [ par vib ] Je désire modifier les propriétés de n'importe quel composant sur une feuille.Je me suis servi de la propriété 'components'de la feuille avec l'index


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales