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 16-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Estuve realizando algunos cambios.
Código Delphi [-]
function EncodeTime( Hour, Min: Word ): TDateTime; // es necesario poner segundos?
begin
Tiempo:=EncodeTime( h1, m1 );
end; 

procedure TForm20.horaminutos; //procedimiento para sumar la hora y los minutos
 begin
 h:=ComboBox3.Text;
 m:=ComboBox2.Text;
  h1:=strToInt(h);
  m1:=StrToInt(m);
end;

este es el boton de guardar
Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
begin
horaminutos; // llama al procedimiento
DBEdit4.SetFocus;
  table1.FieldByName('Cod_turnovet').AsInteger:=c;
  if table2.FieldByName('Cod_prop').AsInteger=Table3.FieldByName('Cod_prop').AsInteger
  then
  table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
  Table1Hora.AsDateTime:=tiempo;
  table1.Post;
end;
El asunto que cuando corre la hora queda en 00:00:00
Responder Con Cita
  #2  
Antiguo 16-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DOS.

Código Delphi [-]
function hmToDateTime(cbH, cbM: TComboBox): TDateTime;
begin
  if (cbH.ItemIndex = -1)or(cbM.ItemIndex = -1) then
    raise Exception.Create('Debe ingresar horas y minutos');
  Result := EncodeTime(StrToInt(cbH.Items[cbH.ItemIndex]),
    StrToInt(cbM.Items[cbM.ItemIndex]), 0, 0);
end;

Uso:
Código Delphi [-]
begin
  Table1.Append;
  Table1.FieldByName('Hora').Value := hmToDateTime(cbHoras, cbMinutos);
  ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 18-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Muchas gracias ecfisa, lo estuve probando y me tira un error "control has no parent window"
esta es la codificación como quedo a ver si tu te das cuenta de que esta mal, gracias.
Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
var
cbHoras, cbMinutos: TComboBox;

begin
  cbHoras:=TComboBox.Create(Application);// inicializo la variable
  cbMinutos:=TComboBox.Create(Application);
DBEdit4.SetFocus;
  table1.FieldByName('Cod_turnovet').AsInteger:=c;
  if table2.FieldByName('Cod_prop').AsInteger=Table3.FieldByName('Cod_prop').AsInteger
  then
  Table1.Append;
  Table1.FieldByName('Hora').Value := hmToDateTime(cbHoras, cbMinutos);
  table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
  table1.Post;

end;

la función
Código Delphi [-]
function hmToDateTime(cbH, cbM: TComboBox): TDateTime;
begin
  if (cbH.ItemIndex = -1)or(cbM.ItemIndex = -1) then
    raise Exception.Create('Debe ingresar horas y minutos');
  Result := EncodeTime(StrToInt(cbH.Items[cbH.ItemIndex]),
    StrToInt(cbM.Items[cbM.ItemIndex]), 0, 0);
end;
Responder Con Cita
  #4  
Antiguo 18-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DOS.
Cita:
lo estuve probando y me tira un error "control has no parent window"
Como indica el mensaje de error, debes asignarle un parent a los controles creados, ejemplo:
Código Delphi [-]
procedure TForm1.BitBtn4Click(Sender: TObject);
var
  cbHoras, cbMinutos: TComboBox;
begin
  cbHoras  := TComboBox.Create(Self);
  cbMinutos:= TComboBox.Create(Self);
  with cbHoras do
  begin
    Left := 10;
    Top  := 10;
   //...
    Parent := Self;
  end;
  with cbMinutos do
  begin
    Left := 10;
    Top  := 50;
    //...
    Parent := Self;
  end;
  //...
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Perdona ecfisa mi ignorancia y mi pesades, pero no entiendo, lo que tu pones parece como que quieres crear los combobox, pero ya estan en el form, son dos uno para las horas de 8 a 18 combobox3 y otro para los minutos de 0 a 50 cada 10 minutos combobox2, a ver si me puedes guiar un poco mas, muchas gracias.
Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
var
cbHoras, cbMinutos: TComboBox;

begin
  cbHoras:=TComboBox.Create(Self);// deberia ser combobox3 y 2?
  cbMinutos:=TComboBox.Create(Self);
   with cbHoras do
  begin
    Left := 10;
    Top  := 10;
   //...  aca iria el resto de las especificaciones del combobox?
    Parent := Self;
  end;
  with cbMinutos do
  begin
    Left := 10;
    Top  := 50;
    //...
    Parent := Self;
  end;
DBEdit4.SetFocus;
  table1.FieldByName('Cod_turnovet').AsInteger:=c;
  if table2.FieldByName('Cod_prop').AsInteger=Table3.FieldByName('Cod_prop').AsInteger
  then
  Table1.Append;
  Table1.FieldByName('Hora').Value := hmToDateTime(cbHoras, cbMinutos);
  table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
  table1.Post;
 end;
Responder Con Cita
  #6  
Antiguo 20-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola DOS.
Cita:
Empezado por DOS Ver Mensaje
lo que tu pones parece como que quieres crear los combobox,
Así es. Y esa idea la inferí basándome en el código de tu mensaje #4:
Cita:
Empezado por DOS Ver Mensaje
...lo estuve probando y me tira un error "control has no parent window"
esta es la codificación como quedo a ver si tu te das cuenta de que esta mal, gracias.
Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
var
cbHoras, cbMinutos: TComboBox;

begin
  cbHoras:=TComboBox.Create(Application);// inicializo la variable
  cbMinutos:=TComboBox.Create(Application);
  DBEdit4.SetFocus;
  table1.FieldByName('Cod_turnovet').AsInteger:=c;
  if table2.FieldByName('Cod_prop').AsInteger=Table3.FieldByName('Cod_prop').AsInteger
  then
  Table1.Append;
  Table1.FieldByName('Hora').Value := hmToDateTime(cbHoras, cbMinutos);
  table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
  table1.Post;

end;
Si agregaste los combos en tiempo de diseño no es necesario invocar a su constructor...

Por otro lado y por el comentario en tu código ("inicializo la variable"), veo que tenes una confusión entre la variable del objeto y sus propiedades.

Si el objeto ya esta creado (y lo está ya que fue echo en tiempo de diseño), lo que sigue es asignarle valores a la/las propiedades de la instancia de el/los TComboBox.
Con los combos creados en diseño y tu código estás eliminando el Parent previo, un ejemplo para que compruebes lo que estoy diciendo:
Código Delphi [-]
procedure TForm20.BitBtn4Click(Sender: TObject);
begin
  ShowMessage('Soy cbHoras, mi padre es: ' + cbHoras.Parent.Name);
  cbHoras := TComboBox.Create(Application);
  if cbHoras.HasParent then
    ShowMessage('No es posible, ¡ Mi padre es inmortal !'
  else
    ShowMessage('Ahora soy huérfano, acaban de matar a mi padre...');
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 20-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
ecfisa, si bien no entiendo mucho, creo que estoy mas cerca, pero mira lo que pasa.



Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
var
cbHoras, cbMinutos: TComboBox;
begin
cbHoras := ComboBox3;
cbMinutos := ComboBox2;
 DBEdit4.SetFocus;
  table1.FieldByName('Cod_turnovet').AsInteger:=c;
  if table2.FieldByName('Cod_prop').AsInteger=Table3.FieldByName('Cod_prop').AsInteger
  then
  Table1.Append;
  Table1.FieldByName('Hora').Value := hmToDateTime(cbHoras, cbMinutos);
  table1.FieldByName('Cod_propi').AsInteger:=Table3.FieldByName('Cod_prop').AsInteger;
  table1.Post;
end;

No deberia funcionar bien? (obvio que no)
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
Asignar el valor de una variable de php a una variable js que puede no existir jandroruiz PHP 5 04-03-2013 12:23:02
Asignar resultado de consulta a variable Saiyan SQL 3 10-07-2007 15:44:10
asignar el resultado de un sql a una variable Cañones SQL 2 14-04-2007 15:29:43
Asignar el valor de DayOfTheWeek a una variable gluglu Varios 7 23-01-2005 19:47:47
Asignar valor ComboBox a una variable gluglu Varios 6 11-10-2004 17:54:44


La franja horaria es GMT +2. Ahora son las 12:48:07.


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