PDA

Ver la Versión Completa : valores en un componente calendar


jerryacuna
14-10-2014, 18:03:44
Buenas, necesito saber como asignar valores en un calendario como el valor del dólar a cada dia del mes (DELPHI XE5)
ejemplo
14 562
15 563
16 559
17 561 esto debe mostrarlo en cada celda del calendario día y valor de cambio

se podrá hacer, necesito leerlo de una tabla y asignarlo al momento de desplegar el calendario.


gracias de antemano

pedro

ecfisa
14-10-2014, 20:42:16
Hola jerryacuna, bienvenido a Club Delphi :)

Como es costumbre con los que se inician, te invitamos a que leas nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php).

No conozco modo de hacer exáctamente lo que solicitas:
...esto debe mostrarlo en cada celda del calendario día y valor de cambio...
La alternativa que se me ocurre es mostrar el valor correspondiente al día seleccionado, mediante propiedad Hint del TMonthCalendar.

type
TForm1 = class(TForm)
tuQuery: TQuery;
MonthCalendar1: TMonthCalendar;
procedure FormCreate(Sender: TObject);
protected
procedure WmNotify(var Msg: TWMNOTIFY); message WM_NOTIFY;
private
public
end;
...
implementation

uses CommCtrl;

procedure TForm1.FormCreate(Sender: TObject);
begin
MonthCalendar1.ShowHint:= True;
end;

procedure TForm1.WmNotify(var Msg: TWMNOTIFY);
begin
if PNMHdr(Msg.NMHdr)^.code = MCN_SELECT then
begin
with tuQuery do
begin
SQL.Text:= 'SELECT VALOR FROM TEST WHERE FECHA = :FECHA';
ParamByName('FECHA').AsDate:=
SystemTimeToDateTime(PNMSelChange(Msg.NMHdr)^.stSelStart);
Open;
if tuQuery.IsEmpty then
MonthCalendar1.Hint:= ' N/D '
else
MonthCalendar1.Hint:= FormatFloat(' $ 0.00 ', FieldByName('VALOR').AsFloat);
end;
end;
end;

Los valores de cotización del dolar son obtenidos mediante una consulta de la columna 'VALOR' de una tabla 'TABLA' seleccionada por la columna 'FECHA' (Esos nombres deberas cambiarlos por los declarados en tu bd).

Saludos :)

jerryacuna
14-10-2014, 21:18:44
muchas gracias, lo probare