Ver Mensaje Individual
  #2  
Antiguo 17-07-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
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
Cita:
Empezado por nickolas Ver Mensaje
Estoy haciendo un sistema para una boleteria de colectivos y dependiendo de la cantidad de asiento que tenga el colectivo creo una cantidad determinada de botones que simulan los asientos. mi incoveniente se encuentra cuando tengo que cambiarles el TAG a los botones ya estos guardan los ID de los asientos que pertenecen al viajes seleccionado. El error que me ocurre es que siempre cambia el tag del ultimo Boton y no de todos uno por uno como deberia.
Hola nickolas.

No veo en ningún lado la creación de los TButtons, pero suponiendo que ya estén creados yo haría el planteo de este modo:
Código Delphi [-]
var
  TEMP_Asientos:Tzquery;
  i: Integer;
begin
  TEMP_Asientos := TZQuery.Create(DM_Conecciones);
  with TEMP_Asientos do
  try
    Connection := DM_Conecciones.Conexion;
    Close;
    // Seleccionar todos los asientos cuyo ID sea igual al buscado
    SQL.Text := 'SELECT * FROM ASIENTOS WHERE ID_VIAJE = :PIDVIAJE ORDER BY ID_VIAJE';
    ParamByName('PIDVIAJE').AsString :=
      DM_Conecciones.ZQ_Boleteria.FieldByName('id_viaje').AsInteger;
    Open;  // Abrir TEMP_Asientos
    // Recorrer los registros seleccionados
    i := 0;
    while not Eof and (i < PNL_Colectivo.ControlCount) do
    begin
      if PNL_Colectivo.Controls[i] is TButton then // ¿ Es un TButton ?
      begin                                        // Si, asignar el ID al Tag
        TButton(PNL_Colectivo.Controls[i]).Tag := FieldByName('ID_ASIENTO').AsInteger;
        Inc(i);  // Incrementar índice
      end; 
      Next;  // Siguiente registro
    end;
  finally
    Close; // Cerrar TEMP_Asientos
    Free;  // Liberar
  end;
end;
Con seguridad encuentres algún error en el código por que lo hice en el notepad (no tengo Delphi en este equipo), pero en líneas generales creo que la lógica se entiende.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita