Ver Mensaje Individual
  #3  
Antiguo 06-01-2015
Avatar de jeremiselxi
jeremiselxi jeremiselxi is offline
Miembro
 
Registrado: ago 2008
Posts: 199
Reputación: 18
jeremiselxi Va por buen camino
Buenas noches.

Luego de probar y probar con varios componente, el que mas me gustó fue el MXcalendar se los recomiendo buscar en http://www.torry.net/.

Luego de instalarlo pude realizar distintas cosas y dado que ustedes siempre me ayudan cuando los necesito, adjunto todo lo que pude realizar con este componente.

Cabe destacar que todo el código que pondré se coloca en el evento OnGetItemStyles.

Sin mas, dejo estos códigos que espero les sirvan a todos.

Nota: El diseño que utilicé traté de que se parezca lo más que pude al calendario de los Sony Xperia E3

Saludos.

Código Delphi [-]


{$R *.dfm}

procedure TForm1.mxCalendar1GetItemStyle(Sender: TmxCustomCalendar;
  AStyleType: TmxStyleType; ADate: TDate; var AFont: TFont;  var AColor: TColor);


  var MiFecha :Tdate;
  var sql, sFecha : string;

begin


// colorear un día en concreto según la fecha que yo quiera:
MiFecha := encodeDate(2015, 01, 25);

  if ADate = MiFecha then
  begin
    AFont.Style := AFont.Style + [fsBold]; // poner en negrita la letra de ese día
    Acolor := clRed; // color de fondo a esa fecha en rojo.
  end;


  // colorear todos los fines de semanas:
  if AStyleType = stWeekend then
  begin
   AColor  := clBtnFace;    // Coloreando el fondo con el color clBtnFace a los fines de semanas.
   AFont.Style := AFont.Style + [fsBold]; // poner en negrita la letra de esos días.
   AFont.Color:= clRed;    // Coloreamos de Rojo el texto de los dias de los fines de semana.
  end;

  //colorear la fecha que hace click

    if AStyleType = stSelected then
    begin
      AColor := $004080FF; // Color mamei
      AFont.Size := 20; //Agrandamos el Tamaño de la letra del dia seleccionado.
    end;


 //Cambiamos el color de los dias del mes actual
  if AStyleType = stDay then
  begin
      AColor := clBtnFace;
  end;


  mxCalendar1.IndirectColor := clBtnFace; // Para cambiar los dias que no se muestran que no pertenecen al mes actual.
  mxCalendar1.IndirectFont.Color:= clSilver; // Cambiamos el texto de los dias de los meses que se muestran que no pertenecen al mes actual


 //Cambiamos los Nombres de los meses dado que aparecen en minuscula
 mxCalendar1.Messages.January:= 'Enero';
 mxCalendar1.Messages.February:= 'Febrero';
 mxCalendar1.Messages.March:='Marzo';
 mxCalendar1.Messages.April:='Abril';
 mxCalendar1.Messages.May:= 'Mayo';
 mxCalendar1.Messages.June:='Junio';
 mxCalendar1.Messages.July:='Julio';
 mxCalendar1.Messages.August:='Agosto';
 mxCalendar1.Messages.September:='Septiembre';
 mxCalendar1.Messages.October:='Octubre';
 mxCalendar1.Messages.November:='Noviembre';
 mxCalendar1.Messages.December:='Diciembre';

 //Para cambiar los nombres de los dias de la semana

 mxCalendar1.Messages.Monday  := 'Lun';
 mxCalendar1.Messages.Tuesday := 'Mar';
 mxCalendar1.Messages.Wednesday := 'Mie';
 mxCalendar1.Messages.Thursday := 'Jue';
 mxCalendar1.Messages.Friday := 'Vie';
 mxCalendar1.Messages.Saturday := 'Sab';
 mxCalendar1.Messages.Sunday := 'Dom';




{Si tenemos en una tabla un campo de tipo Date en la cual guardamos los días festivos,
 El codigo siguiente muestra como colorear el fondo de color rojo esos dias guardados en nuestra tabla.
}
sFecha := datetimetostr(ADate);
sFecha:= formatdatetime('yyyy-mm-dd',strtodate(sFecha));

sql := 'select * from diasfestivos where Fecha = "' + sFecha + '"';

Diasferiado.sql.clear;
Diasferiado.sql.add(sql);
Diasferiado.open;
Diasferiado.First;
if not Diasferiado.Eof then
begin
AColor:=clred;
end;




end;

end.
__________________
Cristo te ama, ven a d él, ya k te espera con los brazos abiertos. Dios te bendiga mucho
Responder Con Cita