FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas con botones
Hola a Tod@s,
a ver si me podeis ayudar estoy creando botones en un panel, pero me hace falta que siga creando en la siguiente colunma y que sepa y siga creando botones hasta terminar el panel y si no caben en ese panel que me los coloque en el siguiente panel al pulsar el boton siguiente.... os pego mi codigo para que veais que ahora actualmente ya estoy visualizando los botones pero me falta como ya os comento que siga en la siguiente columna y que haga tantos botones como grande sea el panel. begin vTop := 1; vInicio := 1; vPestanyaPersonal := Personal; vPestanyaProductos := Familias; BDades.TPersonal.Active := False; BDades.TPersonal.SelectSQL.Text := 'Select * from Personal where tienda = ' + '''' + BDades.TConfigTIENDA.Text + ''''; BDades.TPersonal.Open; BDades.TPersonal.Active := True; BDades.TPersonal.First; While BDades.TPersonal.Eof = False do Begin vPersonalNombre := BDades.TPersonal.FieldByName('NOMBRE').AsString; vPersonalCodigo := BDades.TPersonal.FieldByName('CODIGO').AsInteger; vBotonPersonal := TButton.create(self); vBotonPersonal.Parent := vPestanyaPersonal; vBotonPersonal.Caption := vPersonalNombre; vBotonPersonal.Height := 69; vBotonPersonal.Width := 120; vBotonPersonal.Left := vInicio; // Inicio vBotonPersonal.Top := vTop; // Altura vBotonPersonal.Enabled := True; vBotonPersonal.visible := True; vBotonPersonal.Tag := vPersonalCodigo; vBotonPersonal.OnClick := vPersonalBotonOnClick; vBotonPersonal.Show; BDades.TPersonal.Next; vTop := vTop + 70; if vTop > 420 Then Begin vInicio := 1; vTop := 1; end; end; |
#2
|
|||
|
|||
Hola, supongo que lo puedes hacer utilizando la logica:
Creamos 3 variables: - ParentVarMin, ParentVarMax: TPanel - TopCount, LeftCount : Integer ParentVarMin quiere decir el panel de partida, y el ParentVarMax quiere decir el panel final. entonces configuramos ambas variables ya mensionadas, ahora suponiendo que el panel tiene un Width de 400 igual que Height y los botones un Width de 40 igual que Height, veriamos por logica que en un panel de esas dimensiones caberían en un total de 100 Botones por Width y Height ¿me entiendo?. Boton 40x40 Panel 400x400 TopCount, LeftCount = 0 Se puede hacer un for entre la división del Panel con el boton (Width) (400/40 = 10) multiplicado por la división entre el Panel con el Boton (Height)(400/40 = 10) en total da un resultado de (10 * 10 = 100) y dentro del for lo siguiente: - un if que dice si ParentVarMin = ParentVarMax entonces Pare STOP pero si no es lo siguiente: - Creamos otro for entre la división del Panel con el boton (Width) (400/40 = 10) y dentro de este: - Creamos un botón con un Top multiplicado con el TopCount (40x0 = 0) y un Left multiplicado por su LeftCount(40x0 = 0), luego cuando acabe este proceso(la creación de 1 botón) se le aumentará 1 + al LeftCount para que la proxima dirección de Left sea 40, luego 80, 120, etc... - Se puede usar la misma logica para la creación de TOP osea hacia abajo.... Es medio complicado pero con un poco de imaginación de seguro que lo logras, te toca convertir lo que dije en lenguaje DELPHI Espero estar en lo correcto.jajajja saludos.! |
#3
|
|||
|
|||
Cita:
Por cierto el panel no tiene un tamaña fijo ya que aumentan o disminuye segun el tamaño de la pantalla asi que no sabria nunca que tamaño tiene lo tendria que averiguar... muchas gracias por la explicacion si me pudieras dar un cable con el codigo que es precisamenten mi fallo me harias un favor muy grande. Gracias de antemano. Saludos. |
#4
|
|||
|
|||
Hola, por lo del código veré que puedo hacer porque es un poquito complejo jejeej, por las dimensiones no te preocupes, recuerda que no vamos a poner valores exactos, si no vamos a poner los valores del panel por ejemplo (Panel1.Width o Panel1.Height) entonces será "AutoAjustable" según el tipo de resolución que sea..
Saludos! |
#5
|
|||
|
|||
Hola , pues no era tan complicado como pensaba, te dejo un avance para que ya veas algunos resultados:
CRea un panel con dimensiones 200x200 PD: pueden haber otros metodos que ocupe menos recursos.... Ahora solo falta agregar la función de que pase de un panel a otro......pero eso creo que lo haré después, si encuentras algo más no dudes en postearlo... Utilice la opción ROund(redondeo) asi que la agregación de botones nunca va a ser perfecto a menos que la división entre el Height y Width del boton con el H o W del panel sea un numero entero, como en el ejemplo. 40x40 y 400x400 Número entero 10 54Lu2 Última edición por cmm07 fecha: 06-01-2010 a las 16:06:50. |
#6
|
|||
|
|||
Bien ahora lo voy a probar y te comento, no obstante muchas gracias adelantadas.
un saludo. |
#7
|
|||
|
|||
Hola Compañero,
con tu ayuda pude solventar el problema que tenia ya que me guie con tu codigo para poder completar el mio y solventar el tema, la verdad es que fue un gran aporte. te pego mi codigo para que veas lo que hize, aparte me a servido para poder crear variables configurables y demas.....
Pero ahora solo me queda un pequeño problema y es el siguiente.... Como veras estoy tirando de una tabla la cual llenando la pantalla con la configuracion que tengo no se termina y me hace falta que al darle a siguiente registro me siga cargando el tema y si vuelvo a la pagina anterior me cargue de nuevo las anteriores... eso como lo podria hacer???? mi intencion es que en el panel donde he dibujado 8 columnas por 6 filas me rellene esos botones con los productos pero claro cuando lo productos son mas que los botones me hace falta una manera para que se puedan ver en otra pagina.... Aparte si dibujo en otra pagina para hacer borrado del panel y volverlo a dibujar sin que me queden debajo los ya dibujados como lo hago? Muchas gracias adelantadas. Un Saludo. Última edición por LiAnTe- fecha: 08-01-2010 a las 02:01:58. |
#8
|
|||
|
|||
nadie me puede ayudar con mis ultimas consultas?
gracias! |
#9
|
|||
|
|||
Amigo, ayudar no significa obligar a alguien, si nadie te contesta es porqué quizá no sepan hacerlo o no lo entienden, personalmente quizá te pueda dar una solución (no es muy probable) ya que ahorita estoy muuy cansado, pero mañana quizá analize tu problema con calma...
54Lu2 |
#10
|
|||
|
|||
Cita:
|
#11
|
|||
|
|||
Hola, lo que quieres hacer es un poco complejo, y la verdad es que no se me ocurre por ahora como hacerlo...........
losiento....... 54Lu2 |
#12
|
|||
|
|||
Cita:
es que soy algo novato. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Botones | Cañones | Varios | 6 | 19-07-2007 16:59:41 |
Problemas para crear botones | jcDelphi | Varios | 3 | 08-06-2006 10:00:57 |
Botones en vcl | gontxalo | OOP | 2 | 28-05-2005 10:38:16 |
botones con iconos | vetustas | Gráficos | 2 | 15-12-2003 22:22:37 |
Problemas con botones TJLAqua!! | adfa | OOP | 0 | 05-09-2003 20:36:51 |
|