Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Cambiar Caption

Hola a todos
Tengo una pregunta, seguramente muy tonta pero no le llego, a ver si me podéis ayudar.
Tengo Este código que esta en el evento OnCreate del form.

Código Delphi [-]
 LReloj2.Text := FormatDateTime('hh:nn',Time);
DateTimePicker1.DateTime:= Now;
   If LReloj2.Text > '12:00' then    
begin    
Button1.Caption:= 'Registrar la Entrada de la Tarde';
   end
else
Button1.Caption:= 'Registrar la Entrada de la Mañana';


Como veis LReloj2 tiene un formato Hora, minutos, este esta ligado a un timer para que haga el cambio.
Lo que pretendo es que el caption del Button1 cambie dependiendo de la hora que se presente en LReloj2 que es un Edit.
Gracias por vuestros consejos.
Saludos
Responder Con Cita
  #2  
Antiguo 07-02-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
coloca esto en el form OnCreate:

Código Delphi [-]
Timer1.Enabled:= True;
Timer1.Interval:= 1;

luego

coloca el siguiente codigo en un timer:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 LReloj2.Text := FormatDateTime('hh:mm',Time);
   If LReloj2.Text >= '12:00' then
begin
Button1.Caption:= 'Registrar la Entrada de la Tarde';
   end
else
Button1.Caption:= 'Registrar la Entrada de la Mañana';
end;

Última edición por cmm07 fecha: 07-02-2008 a las 16:47:28.
Responder Con Cita
  #3  
Antiguo 07-02-2008
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
El problema es que "LReloj2.Text > '12:00'" te compara dos textos y, por ejemplo, "2:00" es mayor que "12:00", ya que "2" es mayor que "1". Deberías obtener la hora en formato numérico y de esa forma la comparación sería más adecuada.

Creo recordar que "Now" devolvía el número de segundos, aunque ahora mismo no recuerdo cómo "quitarle los días", no sé si me explico.

[edito] Te adelaste, cmm07...
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 07-02-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
no te entendí mucho pero si lo que quieres decir es pasarlo a numerico quedaría así

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
function stripped(stripchar : char; str : string) : string;
var
  tmpstr : string;
begin
  tmpstr := str;
  while pos(stripchar, tmpstr) > 0 do
    delete(tmpstr, pos(stripchar, tmpstr), 1);
  stripped := tmpstr;
end;

var
Hora: Integer;
begin
LReloj2.Text := FormatDateTime('hh:mm',Time);
Hora:= StrToInt(Stripped(':', LReloj2.Text));
 If Hora >= 1200 then
begin
Button1.Caption:= 'Registrar la Entrada de la Tarde';
   end
else
Button1.Caption:= 'Registrar la Entrada de la Mañana';
end;


mas corto el codigo:

Código Delphi [-]
var
Hora: Integer;
begin
LReloj2.Text:= FormatDateTime('hh:mm',Time);
Hora:= StrToInt(Copy(LReloj2.Text, 0, 2)+Copy(LReloj2.Text, 4, 5));
 If Hora >= 1200 then
begin
Button1.Caption:= 'Registrar la Entrada de la Tarde';
   end
else
Button1.Caption:= 'Registrar la Entrada de la Mañana';

si es así entonces no necesitaria ese LReloj2.

*recuerda colocar eso en un timer y esto en un form en oncreate:

Código Delphi [-]
Timer1.Enabled:= True;
Timer1.Interval:= 1;

Última edición por cmm07 fecha: 07-02-2008 a las 17:01:57.
Responder Con Cita
  #5  
Antiguo 07-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por cmm07 Ver Mensaje
entonces si hay que pasarlo a numerico quedaría así

(creando codigo...)


Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 07-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Otra solución sin pasarlo a numérico (una idea muy interesante de cmm07 )

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Time > StrtoTime('12:00') then
     Button1.Caption:= 'Registrar la Entrada de la Tarde'
  else Button1.Caption:= 'Registrar la Entrada de la Mañana';
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  if Time > StrtoTime('12:00') then
     Button1.Caption:= 'Registrar la Entrada de la Tarde'
  else Button1.Caption:= 'Registrar la Entrada de la Mañana';
end;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 07-02-2008
cmm07 cmm07 is offline
Miembro
 
Registrado: nov 2007
Posts: 526
Poder: 17
cmm07 Va por buen camino
jajaja para pasarlo a numerico no habia que hacer tanto atao aqui les dejo algo mas clarito:

Código Delphi [-]
if StrToInt(Copy(TimeToStr(Time), 0, 2)+Copy(TimeToStr(Time), 4, 2)) > 1200 then
Button1.Caption:= 'Registrar la Entrada de la Tarde'
else
Button1.Caption:= 'Registrar la Entrada de la Mañana';

SALU2

Gracias a [egostar] pude darme cuenta gracias.

Última edición por cmm07 fecha: 07-02-2008 a las 17:15:32.
Responder Con Cita
  #8  
Antiguo 07-02-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Muchas gracias, me estoy volviendo viejo, lo tenia en el timer y lo cambie a create sin darme cuenta de que no funcionaria, bueno, por eso soy novato.
Ya esta solucionado, os lo agradezco mucho.
Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar el Caption de un Form en tiempo de ejecucion kikodelphi OOP 5 14-01-2012 22:54:22
Cambiar Caption Ayuda...!!! alexis19 Varios 3 26-01-2008 14:25:42
Cambiar el caption de un boton segun el registro nenufer Varios 8 08-06-2006 09:32:48
Cambiar título/caption de un programa Casimiro Notevi Varios 3 22-10-2005 23:03:06
cambiar color de caption al presionar unko! OOP 4 13-03-2005 17:30:33


La franja horaria es GMT +2. Ahora son las 11:02:15.


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
Copyright 1996-2007 Club Delphi