DateTimePicker & calendrier popup

yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017 - 19 juin 2013 à 16:17
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 26 juin 2013 à 09:33
Bonjour,

DateTimePicker permet d'afficher un calendrier.

Je souhaite changer sa position , ses dimensions et la taille des caractères, lors de la consultation de ce calendrier.
A la fermeture du calendrier la taille des caractères est redimensionnée .

Y-A-T-IL UNE POSSIBILITÉ ?

MERCI

yvessimon

13 réponses

dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
19 juin 2013 à 17:41
Salut
à priori rien n’empêche de changer la font, le left ou le top du composant

procedure TForm1.Button1Click(Sender: TObject);
begin
D1.Font.Size := 12;
D1.Left := 50;
end;


(D1: TDateTimePicker;)
ça marche bien
Dubois77
site perso
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
20 juin 2013 à 09:20
@M. Dubois : J'ai l'impression que notre ami souhaite uniquement changer les propriétés du calendrier qui s'affiche quand on "dropdowne" le DateTimePicker... Et là... C'est une autre paire de manche...

Simon
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
20 juin 2013 à 12:26
bonjour,

pas de dropdown dans la question..
ou alors, il faut que yvessimon précise mieux sa question.

cantador
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
20 juin 2013 à 13:08
J'ai bien relu la question, et effectivement Simon a peut être quand même raison :
Je souhaite changer sa position , ses dimensions et la taille des caractères, lors de la consultation de ce calendrier.

ça peut vouloir dire le moment ou il clique sur la flèche à gauche de DateTimePicker
et la évidemment c'est autre chose car il faudrait intercepter cette action !

Mais Cantador a raison, il faut d'abord que Yvessimon s'explique un peu

Dubois77
site perso
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
20 juin 2013 à 15:11
m'enfin ! Yvessimon n'est pas un noob... J'espère qu'il connait au moins les propriétés de l'inspecteur d'objet...

Simon
0
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
21 juin 2013 à 07:53
Bonjour,

C'est bien cela.
comment changer les propriétés, position , hauteur .., du calendrier MonthCalendar1 qui s'affiche ,quand on "dropdowne" le DateTimePicker ?


Merci

yvessimon
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
21 juin 2013 à 09:53
Là on va avoir besoin des pointures du forum...


Simon
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
21 juin 2013 à 14:35
il manque l'évènement OnInitPopup..

cantador
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
21 juin 2013 à 16:43
M'est avis que le plus facile (à mon niveau) est d'utiliser deux composants un combobox et un monthcalendar et d'essayer de faire ce que tu veux avec ça... (sauf si un kaiser de Delphi a une solution à proposer)

Simon
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
21 juin 2013 à 17:24
dans ComCtrls on a :
TDateTimePicker = class(TCommonCalendar)
  private
    FCalAlignment: TDTCalAlignment;
    FChanging: Boolean;
    FChecked: Boolean;
    FDateFormat: TDTDateFormat;
    FDateMode: TDTDateMode;
    FDroppedDown: Boolean;
    FKind: TDateTimeKind;
    FLastChange: TSystemTime;
    FParseInput: Boolean;
    FShowCheckbox: Boolean;
    FOnUserInput: TDTParseInputEvent;
    FOnCloseUp: TNotifyEvent;
    FOnChange: TNotifyEvent;
    FOnDropDown: TNotifyEvent;
    FFormat: String;
    procedure AdjustHeight;
    function GetTime: TTime;
    procedure SetCalAlignment(Value: TDTCalAlignment);
    procedure SetChecked(Value: Boolean);
    procedure SetDateMode(Value: TDTDateMode);
    procedure SetDateFormat(Value: TDTDateFormat);
    procedure SetKind(Value: TDateTimeKind);
    procedure SetParseInput(Value: Boolean);
    procedure SetShowCheckbox(Value: Boolean);
    procedure SetTime(Value: TTime);
    procedure CMColorChanged(var Message: TMessage); message CM_COLORCHANGED;
    procedure CMFontChanged(var Message: TMessage); message CM_FONTCHANGED;
    procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
    procedure SetFormat(const Value: String);
  protected
    procedure CheckEmptyDate; override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure CreateWnd; override;
    procedure Change; dynamic;
    function GetCalendarHandle: HWND; override;
    function MsgSetCalColors(ColorIndex: Integer; ColorValue: TColor): Boolean; override;
    function MsgSetDateTime(Value: TSystemTime): Boolean; override;
    function MsgSetRange(Flags: Integer; SysTime: PSystemTime): Boolean; override;
  public
    constructor Create(AOwner: TComponent); override;
    property DateTime;
    property DroppedDown: Boolean read FDroppedDown;
  published
    property Anchors;
    property BevelEdges;
    property BevelInner;
    property BevelOuter;
    property BevelKind default bkNone;
    property BevelWidth;
    property BiDiMode;
    property CalAlignment: TDTCalAlignment read FCalAlignment write SetCalAlignment default dtaLeft;
    property CalColors;
    property Constraints;
    // The Date, Time, ShowCheckbox, and Checked properties must be in this order:
    property Date;
    property Format: String read FFormat write SetFormat;
    property Time: TTime read GetTime write SetTime;
    property ShowCheckbox: Boolean read FShowCheckbox write SetShowCheckbox default False;
    property Checked: Boolean read FChecked write SetChecked default True;
    property Color stored True default clWindow;
    property DateFormat: TDTDateFormat read FDateFormat write SetDateFormat default dfShort;
    property DateMode: TDTDateMode read FDateMode write SetDateMode default dmComboBox;
    property DragCursor;
    property DragKind;
    property DragMode;
    property Enabled;
    property Font;
    property ImeMode;
    property ImeName;
    property Kind: TDateTimeKind read FKind write SetKind default dtkDate;
    property MaxDate;
    property MinDate;
    property ParseInput: Boolean read FParseInput write SetParseInput default False;
    property ParentBiDiMode;
    property ParentColor default False;
    property ParentFont;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop default True;
    property Visible;
    property OnClick;
    property OnCloseUp: TNotifyEvent read FOnCloseUp write FOnCloseUp;
    property OnChange: TNotifyEvent read FOnChange write FOnChange;
    property OnContextPopup;
    property OnDropDown: TNotifyEvent read FOnDropDown write FOnDropDown;
    property OnDblClick;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnStartDock;
    property OnStartDrag;
    property OnUserInput: TDTParseInputEvent read FOnUserInput write FOnUserInput;
  end;


Il faudrait voir ou on peut intervenir dans une des procédure (surcharge ?)

Dubois77
site perso
0
dubois77 Messages postés 675 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 19 février 2019 14
21 juin 2013 à 17:46
Uniquement avec l'inspecteur objet, si on clique d'abord sur le composant, il grossit, en l'ouvrant on peut sélectionner un jour, en refermant on revient à la taille origine
Mais il faut en fait cliquer 2 fois ce qui n'est pas exactement la réponse !
procedure TForm1.D1Click(Sender: TObject);
begin
D1.Font.Size := 18;
D1.Left := 150;

end;

procedure TForm1.D1CloseUp(Sender: TObject);
begin
D1.Font.Size := 12;
D1.Left := 50;
end;


procedure TForm1.D1Change(Sender: TObject);
begin
D1.Font.Size := 18;
D1.Left := 150;

end;



Dubois77
site perso
0
yvessimon Messages postés 637 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 9 janvier 2017
24 juin 2013 à 11:10
Bonjour,


La conclusion semble la même.

J’essaie avec un combobox et un monthcalendar


salutations

yvessimon
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
26 juin 2013 à 09:33
une solution plus sioux consiste à changer de composant et d'utiliser
le TJvDatePickerEdit des JEDI et de prendre l'évènement OnButtonClick :

procedure TForm1.JvDatePickerEdit1ButtonClick(Sender: TObject);
begin
 JvDatePickerEdit1.Font.Size := 24;
end;


ça marche, mais dommage que la propriété autosize ne fonctionne pas ou du moins, je n'ai pas réussi à la faire fonctionner.
il faut donc allonger le composant (width) afin de prévoir le stockage correcte de la date.

cantador
0
Rejoignez-nous