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 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
  #2  
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
  #3  
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
  #4  
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.

No termino de entender la relación del gráfico con el código.

Pero volvamos a los ComboBox, ahora aparecen en escena dos nuevos ComboBox2 y ComboBox3, que supongo también están creados en tiempo de diseño.

El siguiente código no debería existir:
Código Delphi [-]
procedure TForm20.BitBtn4Click(Sender: TObject);
var cbHoras, cbMinutos: TComboBox;  (*   ¡ Esto no corresponde !  *)
begin
   ...
Al declarar cbHoras y cbMinutos como variables locales al método BitBtn4Click, este trabajará sobre estas y no sobre las homónimas creadas en tiempo de diseño. Provocando de ese modo una excepción ya que las locales no han sido instanciadas.

Por otro lado, la asignación de los combos debería hacerse:
Código Delphi [-]
procedure TForm20.BitBtn4Click(Sender: TObject);
begin
  cbHoras.Items.Assign(ComboBox2.Items);
  cbMinutos.Items.Assign(ComboBox3.Items);
  ...
Eso independientemente del buen o mal funcionamiento que pudiera tener el código que lo sucede.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 22-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
Gracias ecfisa, ya eliminie la parte del codigo que estaba mal, pero de que tipo deben ser las variables, las declaro del tipo global, pero si pongo string o integer me dice que no es compatible con el comboBox corre solo si pongo que son del tipo TcomboBox, el codigo queda asi
Código Delphi [-]
  // guarda turno
procedure TForm20.BitBtn4Click(Sender: TObject);
begin
cbHoras := ComboBox3.Text;
cbMinutos := ComboBox2.Text;
//cbHoras.Items.Assign(comboBox2.Items); //no funciona
//cbMinutos.Items.Assign(ComboBox3.Items);//[Error] Unit20.pas(226): Record, object or class type required
 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;
El asunto que cuando cargo todos los datos y le doy click al boton de guardar, me queda como en la imagen , el del codigo de turno 10000006 , quedan todos los datos pero la hora queda en otra linea sola, por eso lo remarque con una flecha.
Si lo cargo asignando como tu lo escribiste, se cuelga tirando un error Access violation at Addres 0053a434 in module 'Project1.exe'... declarando las variables del tipo Tcombobox y si las declaro del tipo string o integer no anda y aparece el error que se muestra arriba.
creo que esta cerca de la solucion, falta un ultimo pasito, muchas gracias por tu paciencia.
Responder Con Cita
  #6  
Antiguo 28-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Poder: 13
DOS Va por buen camino
ecfisa, todavia no lo pude resolver
Responder Con Cita
  #7  
Antiguo 28-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.

La verdad, me falta información para poder darte una respuesta a tu anteúltimo mensaje. Asì que te hago unas consultas:
  • ¿ cbHoras y cbMinutos son dos TComboBox donde se elijen horas y minutos respectivamente ?
  • ¿ Que función desempeñan ComboBox3 y ComboBox2 ?
  • ¿ De que tipo es el campo Hora de Table1 ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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 07:32:36.


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