Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Problema Al Crear Boton Por Codigo SOLUCIONADO
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema Al Crear Boton Por Codigo SOLUCIONADO 
 
Hola amigos, estoy aqui de nuevo puesto me ha surgido un problema que no se como solucionar.
Os anexo el codigo que ejecuto y el que debería ejecutar.

PUBLIC PROCEDURE NuevoBoton()
 DIM i AS Integer
  
    ME.btn = NEW Button(ME) AS "btnDni"
    ME.btn.Text = ME.BuscarDni
    ME.btn.W = 120
    ME.btn.H = 21
  
END

PUBLIC SUB ToolButton5_Click()

  DIM $reg AS Integer
  DIM $reg1 AS Integer
  DIM TapaClave AS Integer
  DIM nuevaclave AS String
  DIM Mi_Boton AS Button

  Form_Open()
  ME.Text = "LISTADO DE EMPLEADOS"
  SinDatos.Text = ME.Text
  General.conectar()
  Tabla.Visible = TRUE
  
  Tabla.Columns.Count = 11

  Tabla.Columns[0].Text = "D.N.I."
  Tabla.Columns[0].Width = 100
  Tabla.Columns[1].Text = "NOMBRE"
  Tabla.Columns[1].Width = 200
  Tabla.Columns[2].Text = "SEXO"
  Tabla.Columns[2].Width = 100
  Tabla.Columns[3].Text = "ALTA DESDE"
  Tabla.Columns[3].Width = 100
  Tabla.Columns[4].Text = "NACIO EL"
  Tabla.Columns[4].Width = 100
  Tabla.Columns[5].Text = "EN"
  Tabla.Columns[5].Width = 100
  Tabla.Columns[6].Text = "PROVINCIA"
  Tabla.Columns[6].Width = 100
  Tabla.Columns[7].Text = "DIRECCION"
  Tabla.Columns[7].Width = 300
  Tabla.Columns[8].Text = "DE"
  Tabla.Columns[8].Width = 100
  Tabla.Columns[9].Text = "PROVINCIA"
  Tabla.Columns[9].Width = 100
  Tabla.Columns[10].Text = "FOTOGRAFIA"
  Tabla.Columns[10].Width = 100


  General.Resultado = General.$con.Exec("SELECT * FROM `Empleados`")
  ME.Botones = General.Resultado.Count

  IF General.Resultado.Count < 1 THEN
    SinDatos.Visible = TRUE
  ENDIF
  IF General.Resultado.Count > 0 THEN
    FOR $reg = 0 TO General.Resultado.Count - 1 STEP 1
        Tabla.Add($reg, General.Resultado!dni)
        Tabla[$reg][1] = General.Resultado!nombre
        Tabla[$reg][2] = General.Resultado!sexo
        Tabla[$reg][3] = General.Resultado!Alta
        Tabla[$reg][4] = General.Resultado!el_dia
        Tabla[$reg][5] = General.Resultado!nacido_en
        Tabla[$reg][6] = General.Resultado!provincia_de
        Tabla[$reg][7] = General.Resultado!localidad_NA
        Tabla[$reg][8] = General.Resultado!direccion
        Tabla[$reg][9] = General.Resultado!provincia_NA
        Tabla[$reg][10] = NuevoBoton()
        ME.BuscarDni = General.Resultado!dni
        General.Resultado.MoveNext
    NEXT
  ENDIF
  Tabla.Refresh
  General.$con.Close

END


La TABLA muestra correctamente los datos, pero no consigo que me ponga en el campo FOTOGRAFIA un boton con
el texto como valor el dni del empleado, quiero el boton porque si se quiere ver la Fogotgrafia del empleado, al pulsar el boton se abrirá un form con la imagen.
GRACIAS A TODOS
 



 
última edición por desoljor el Martes, 15 Febrero 2011, 21:00; editado 1 vez 
desoljor - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Boton Por Codigo 
 
Lo primero es que tu creas el botón en el container ME (que es el formulario) y por tanto no se crea en el gridview. El botón se crea pero no donde tu quieres. Quizá no lo ves porque está tapado por otro control. Puede ser.
Lo segundo es que el gridview no es un container y por tanto no puedes meter un botón allí dentro como tampoco puedes meterlo dentro de un textbox o un listbox.

Lo que puedes hacer es poner el botón encima del gridview en la posición adecuada. Eso si que funcionará. Para ello utiliza gridview.left, gridview.top, gridview.column[x].height y gridview.column[x].width

Jsbsan ahí tienes otra propiedad que meterle a tu supergrid si quieres pensarlo. Que en una clase le puedas dar una propiedad boton(columna) y te sitúe en esa posición un botón con su evento click correspondiente ja ja ja. Si te apetece pensarlo digo je je je.

 
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Boton Por Codigo 
 
Soplo:
Citar:
gridview.left, gridview.top, gridview.column[x].height y gridview.column[x].width


Para hacerlo, tengo que saber la situación (coordenadas x,y y ancho y largo) de por ejemplo donde esta el cursor (o celda seleccionada ),

¿sabes como se calcula dicha posicion?
   

saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Boton Por Codigo 
 
Hola

Así es como yo lo hice en un programilla para buscar y descargar torrents. Es Gambas3, pero no creo que haya diferencias respecto a Gambas2:

https://www.assembla.com/code/gisoh...ain.class?rev=3

http://foro.gambas-es.org/viewtopic...ight=gisohunter

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema Al Crear Boton Por Codigo 
 
Primero que al pensarlo me doy cuenta que no tiene ningún sentido poner un botón en una celda. En todo caso en una fila o columna entera. Otra cosa es que lo muestres o no a voluntad.
Pongamos el siguiente GridView
Dim Gr as new GridView(ME), Bt as button
Gr.columns.count=3
Gr.rows.count=3
Gr.top=100
Gr.left=100
Gr.column[0].width=100
Gr.column[1].width=100
Gr.column[2].width=100
Gr.row[0].height=28
Gr.row[1].height=28
Gr.row[2].height=28


Ahora pensemos como encontrar la posición de inicio de la celda (X,Y)=(2,2)
Dim X as integer=2, Y as integer=2
Dim PosX as integer=Gr.Left+1 'posición de inicio de columna 0
Dim PosY as integer=Gr.Top+1 'posición de inicio de fila 0
Dim Contador as integer
'obtener el nuevo PosX
For Contador =0 to X-1
   PosX +=Gr.Column[Contador].width +2 'incrementar PosX con el ancho de las columnas anteriores mas la línea de borde
Next

'Ahora PosX vale el inicio de la columna 2. Puedes situar el botón en ese PosX pero si lo quieres alineado a la derecha entonces le tienes que sumar el ancho de esa columna y restarle el ancho de ese botón

'Ahora obtener PosY
for Contador=0 to Y-1
   PosY+=Gr.Row[Contador].width +2
next

'Ahora situar el botón
Bt=New button(Me)
Bt.top=PosY
Bt.left=PosX
 


Mas o menos sería así. Habría que ajustar algo quizá porque no lo he probado y solo lo he puesto aquí a pelo pero sería algo parecido si no es exactamente esto.

Eso pondría un botón encima de la celda que quieres, pero veo OTRA FORMA DE HACERLO.
-------------------------------------------------------------------------------
La otra forma sería situar una columna 2 en la que solo hubiera un botón. En realidad el truco es ponerle una imagen que simule ser un botón pero que sea un picture
Gr[2,2].picture=Picture["..." ]

Y luego en el evento click
private sub Gr_Click()
if Gr.Column=2 and Gr.Row=2 then
   EventoBoton(Gr.Row,Gr.Colunn)
endif


Y en EventoBoton se gestiona el evento de ese botón y se le pasa la fila y columna donde ha ocurrido
private sub EventoBoton(Fila as integer, Columna as integer)
...
...
end

 



 
última edición por soplo el Viernes, 28 Enero 2011, 21:04; editado 4 veces 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron