Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Color Calendario... (https://www.clubdelphi.com/foros/showthread.php?t=41380)

Lepe 24-03-2007 05:06:38

Lo lamento, no he usado postgree en mi vida.

Saludos

thelibmx 26-03-2007 18:39:10

ok, muchas gracias de todos modos, con lo que me has dicho me ha ayudado mucho... buen dia :)

thelibmx 27-03-2007 00:26:23

Cita:

Empezado por Lepe
Código Delphi [-]
uses DateUtils;

mxcalendar1.OnGetItemStyle(Sender:TmxCustomCalendar;AstyleType:TmxStyleType;
ADate:TDate;var AFont:Tfont; var AColor:TColor)

var MiFecha :Tdate;
begin
// colorear según la fecha que yo quiera:
MiFecha := encodeDate(2007, 03, 25);
if ADate = MiFecha then
begin
AFont.Style := AFont.Style + [fsBold] // poner en negrita la letra de ese día
Acolor := clRed; // color de esa fecha en rojo
end;

// colorear todos los fines de semana:
if AStyleType = stWeekend then AColor := clgreen

//colorear la fecha que hace click
else if AStyleType = stSelected then AColor := clYellow;
....
// mira en mxCalendar.pas para ver el StyleType






Saludos


oye ahi en donde esta la sintaxys para colorear la fecha que yo quiera, yo he asignado manualmente las fechas y si se pintan, mi duda es... hay una manera de que pueda hacer lo mismo pero introduciendo las fechas desde un Tedit, o caja de texto?, si se puede, podrias poner un codigo de ejemplo, please, por que he intentado ligarlos y no he podido,

Lepe 27-03-2007 11:32:49

Necesitarás un sitio donde guardar todas las fechas que quieres resaltar, por ejemplo un array of TDate. Ese array debe ser global al formulario.
Código Delphi [-]
var Fechas : Array of TDate;

Mira la ayuda de SetLength para cambiar el tamaño de ese array dinamicamente.

Después dentro de ese evento, recorres el array y si la fecha Adate = Fechas[i] entonces pintas.

Saludos

thelibmx 28-03-2007 05:17:59

Conversionde Datos String A Word
 
hola, sabes estoy ocupando el componente tmaxcalendar, para sombrear las fechas de un color determinado, pues bien ya hice todo el procedimiento y pues a las fechas se sombrean pero por medio de codigo, entonces yo quise hacer lo mismo pero automaticamente, entonces ya hice mi conexion con una bd y tengo el campo en un DBedit. lo que yo quiero es que me sombrie todas las fechas que vayan apareciendo en el BDedit pero a la hora de pasar los datos me dice que no son compatibles

[Pascal Error] conf_calendario.pas(145): E2010 Incompatible types: 'Word' and 'string'

estos datos, como podria hacerlo ?
dejo parte de mi codigo para mayor informacion


procedure TForm5.diedClick(Sender: TObject);
begin
prueba:= DBedit3.EditText;
showmessage(prueba);//aqui esta todo correcto me trae el registro de la bd
end;


function cambiaFormato(fecha:String):String;
begin
an:=Copy(fecha,3,2);
mes:=Copy(fecha,6,2);
dia:=Copy(fecha,9,2);
cambiaFormato:=an+','+mes+','+dia;
end;



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

nuevaFecha:=cambiaFormato(prueba);
segundafecha:= strtodate (nuevaFecha);

segundafecha:=encodedate(an,mes,dia);

if (ADate = primefecha) or (Adate=segundafecha) then
begin
AFont.Style:= AFont.Style + [fsBold]; // poner en negrita la letra de ese día
AColor:=clRed; // color de esa fecha en rojo
end;

end;

Lepe 28-03-2007 10:23:07

Código Delphi [-]
 segundafecha:=encodedate(strtoInt(an),strToInt(mes),strtoint(dia);
Aquí "an" está en formato dos dígitos, es decir 02 para referirte al año 2002, la función lo entenderá como 1902, ya que el calendario base empieza en 1900, y al esperar un Word (que al fin y al cabo es un integer), lo interpreta mal. Obliga al usuario a escribir 4 dígitos para el año.

Saludos

thelibmx 09-04-2007 22:11:17

Muchas gracias, tenias mucha razon, solo agregue los numeros complementarios a la funcion y quedo listo, gracias por la ayuda


La franja horaria es GMT +2. Ahora son las 02:56:19.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi