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 15-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Asignar 2 combobox a una variable

Hola a todos, resulta que tengo dos combobox en uno tengo lo que serian algunas horas y en otro algunos minutos, cada uno lo guardo en una variable h, m, para ello creo un procedimiento
Código Delphi [-]
procedure TForm20.horaminutos; //procedimiento para sumar la hora y los minutos
 var
 h,m :string;
 begin
 h:=ComboBox3.Text;
 m:=ComboBox2.Text;
end;
por supuesto que esta incompleto
entonces el usuario selecciona la hora y los minutos y una serie de datos, cuando le da al boton guardar, llama al procedimiento y deberia quedar ej.: 18:20, esto se guardaria en una tabla dentro del campo hora del tipo Time.
Estoy desorientado en como asignar esas dos variables al campo, agradesco que me ayuden.

Última edición por DOS fecha: 15-09-2013 a las 22:53:10.
Responder Con Cita
  #2  
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
  #3  
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
  #4  
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
  #5  
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
  #6  
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
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 17:41:16.


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