Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   usar MontCaledar o DateTimePicker? (https://www.clubdelphi.com/foros/showthread.php?t=67778)

Lutmak 06-05-2010 00:30:58

usar MontCaledar o DateTimePicker?
 
bueno pues primero que nada hola
veran soy novato en delphi y tengo una duda con respecto a un programa que estoy haciendo y basicamente es un "estimador de ahorros" mi problema es que quiero que ya sea en un DateTimePicker o MonthCalendar selecciones un dia o fecha y poder usar esa fecha para calcular es decir:
hoy es lunes y selecciono viernes
¿como puedo hacer que el programa sepa que son 5dias? por que lo que quiero hacer es que en base a eso divida lo que tengo que ahorrar es decir si tengo que ahorrar 100 pesos lo divida entre los dias que tengo como limite...
no se si me explique pero espero me entiendan
y otra duda que tengo es como hacer que un TEdit solo hacepte "1234567890." leei que es con un MaskEdit pero no me acepta el "9"....
espero me puedan ayudar
de antemano gracias.

ecfisa 06-05-2010 02:13:51

Hola Lutmak.

Para la primera parte de tu pregunta, podes usar la función DaySpan, para lo cuál necesitas incluir la unit DateUtils, en tu caso se usaría así:
Código:

var
  NroDias: Integer;
begin
  NroDias:=Trunc(DaySpan(Date, DateTimePicker1.Date));
  ...

La segunda parte:
Si utilizas un TEdit, tendrías que usar algo parecido al código siguiente en el evento OnKeyPress:
Código:

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,'.','0'..'9']) then
  begin
    Beep;
    Key:= #0;
  end;
end;

Para usar un TMaskEdit, usa el caracter '#' en Input Mask del Input Mask Editor.
Por ejemplo: La máscara: ####.##;1;_
Usando 12.55, te da la salida: 12__.55
Si queres evitar las líneas usa un blanco para Characters for Blanks.

Saludos.

Caro 06-05-2010 16:26:28

Hola Lutmak, para tu primera pregunta también puedes utilizar la función DaysBetween que también esta en la unit DateUtils.

Código Delphi [-]
  NroDias := DaysBetween(Date, DateTimePicker1.Date);

Saluditos

Lutmak 08-05-2010 06:31:12

gracias por las respuestas jeje la verdad veo que me falta mucho para llegar a hacer esas funciones en delhpi pero no es imposible..
ecfisa gracias por lo del edit pero no entiendo esta parte:
Código:

(Key in [#8,'.','0'..'9'])
jeje practicamente es toda la funcion pero si me sirvio gracias....

y pues disculpen mi ignorancia pero donde esta o como se usa "unit DateUtils" se que tal vez la vean como una pregunta tonta pero pues nadie nacio sabiendo recuerden que pues soy nuevo en delhpi
muchas gracias por las respuestas

rgstuamigo 08-05-2010 16:45:45

Cita:

Empezado por Lutmak (Mensaje 363269)
gracias por las respuestas jeje la verdad veo que me falta mucho para llegar a hacer esas funciones en delhpi pero no es imposible..
ecfisa gracias por lo del edit pero no entiendo esta parte:
Código:

(Key in [#8,'.','0'..'9'])
jeje practicamente es toda la funcion pero si me sirvio gracias....

y pues disculpen mi ignorancia pero donde esta o como se usa "unit DateUtils" se que tal vez la vean como una pregunta tonta pero pues nadie nacio sabiendo recuerden que pues soy nuevo en delhpi
muchas gracias por las respuestas

Basicamente la instrucion
Código Delphi [-]
if not (Key in [#8,'.','0'..'9']) then
lo que hace es preguntar si la tecla pulsada NO ES un número del cero(0) al nueve(9) , ni tampoco la tecla de "Retroceso"(en ASCII 8),ni tampoco es el caracter "punto"(.), pues lo que hace a continucion>
Código Delphi [-]
begin    
    Beep;//<--Emite in pitido 
    Key:= #0;//<--Hace que la tecla sea nula o mejor dicho le asigna el caracter Ascci Cero(0);)
end;
.
En cuanto a usar la Unidad DateUtils, pues cencillamente debes colocarla o añadirla(separada con una coma (,) ) en la seccion Uses de la unidad actual donde estas trabajando o la estas necesitantado, algo asi:
Código Delphi [-]
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,DateUtils;//<--;)
.
Saludos...;)


La franja horaria es GMT +2. Ahora son las 14:00:07.

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