SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: UserCode en Viernes 29 de Junio de 2007, 23:02

Título: Msflexgrid.removeitem
Publicado por: UserCode en Viernes 29 de Junio de 2007, 23:02
hola muchachos, que tal le ha ido con quien ha hecho uso del .RemoveItem de un MSFlexgrid

Yo lleno un MSFlexgrid en memoria al seleccionar unos Item de un Combobox asi:

Código: Text
  1.  
  2.     MSF.Rows = MSF.Rows + 1
  3.     MSF.Row = MSF.Rows - 1
  4.  
  5.     MSF.Col = 1
  6.     MSF.Text = cmbDescripcion.Text
  7.    
  8.     MSF.Col = 2
  9.     MSF.Text = cmbDesc1.Text
  10.      
  11.     MSF.Col = 3
  12.     MSF.Text = txtMonto1.Text
  13.  
  14.  

Pero no he podido ver bien como armar el codigo sin que de errores del Remover en caso de desear quitar un agregado al MSFlexgrid

Estaba probando algo como esto pero no me ha servido:
Código: Text
  1.  
  2.     For i = 1 To MSF.Rows - 1
  3.         MSF.Row = i
  4.         MSF.Col = i
  5.     Next
  6.     MSF.RemoveItem (MSF.Row)
  7.  
  8.  

Alguien ha logrado o sabe como hacer un correcto uso del RemoveItem del MSFlexgrid sin morir en el intento  :unsure:
Título: Re: Msflexgrid.removeitem
Publicado por: rfuentevilla en Sábado 7 de Julio de 2007, 18:52
Cita de: "UserCode"
hola muchachos, que tal le ha ido con quien ha hecho uso del .RemoveItem de un MSFlexgrid

Yo lleno un MSFlexgrid en memoria al seleccionar unos Item de un Combobox asi:

Código: Text
  1.  
  2.     MSF.Rows = MSF.Rows + 1
  3.     MSF.Row = MSF.Rows - 1
  4.  
  5.     MSF.Col = 1
  6.     MSF.Text = cmbDescripcion.Text
  7.     
  8.     MSF.Col = 2
  9.     MSF.Text = cmbDesc1.Text
  10.     
  11.     MSF.Col = 3
  12.     MSF.Text = txtMonto1.Text
  13.  
  14.  

Pero no he podido ver bien como armar el codigo sin que de errores del Remover en caso de desear quitar un agregado al MSFlexgrid

Estaba probando algo como esto pero no me ha servido:
Código: Text
  1.  
  2.     For i = 1 To MSF.Rows - 1
  3.         MSF.Row = i
  4.         MSF.Col = i
  5.     Next
  6.     MSF.RemoveItem (MSF.Row)
  7.  
  8.  

Alguien ha logrado o sabe como hacer un correcto uso del RemoveItem del MSFlexgrid sin morir en el intento  :unsure:
 :blink: No te entiendo lo q quieres hacer. de lo que entendi quieres eliminar las filas de un flexgri, si es asi lo que yo he realizadoes lo sigt. :
if msf.rows=2 then
    for pp=0 to msf.cols-1
           msf.textmatrix(1,pp)=""
    next
else
     msf.removeitem(msf.row)
endif
Título: Re: Msflexgrid.removeitem
Publicado por: UserCode en Miércoles 11 de Julio de 2007, 14:37
Viendo un codigo que no tenia mucho que ver con lo mio, extraje de internet y arme lo mio, bueno asi quedo, ya no me da error esto asi  :P
Código: Text
  1.  
  2. Private Sub MSHF_KeyPress(KeyAscii As Integer)
  3.     If KeyAscii = 100 Then 'd
  4.         If MSHF.Row > 1 Then
  5.             MSHF.RemoveItem (MSHF.Row)
  6.             MSHF.Refresh
  7.         ElseIf MSHF.Row = 1 Then
  8.             MSHF.Clear: MSHF.Rows = 1
  9.             MSHF.Col = 1: MSHF.Row = 0: MSHF.Text = "Descripción"
  10.             MSHF.Col = 2: MSHF.Row = 0: MSHF.Text = "Monto"
  11.         End If
  12.     End If
  13. End Sub
  14.  
  15.  
Activo o ejecuto esto con la tecla "d" porque no logre capturar y hacerse activar el Ascii de la tecla Delete, el If Keyascii tenia el numero Ascii de la tecla Del o Supr, y por más que le daba, solo servia la validacion con las teclas de siempre del teclado para escribir, pero las que se encuentran del lado derecho del teclado como Insert, Supr, etc para la validación Keyascii era como si no hubiese pulsado nada  :blink:
Título: Re: Msflexgrid.removeitem
Publicado por: F_Tanori en Miércoles 11 de Julio de 2007, 16:37
Cita de: "UserCode"
Activo o ejecuto esto con la tecla "d" porque no logre capturar y hacerse activar el Ascii de la tecla Delete, el If Keyascii tenia el numero Ascii de la tecla Del o Supr, y por más que le daba, solo servia la validacion con las teclas de siempre del teclado para escribir, pero las que se encuentran del lado derecho del teclado como Insert, Supr, etc para la validación Keyascii era como si no hubiese pulsado nada  :blink:
Para utilizar las teclas 'especiales' de funciones y demas

debes usarlo en los eventos
en lugar de KeyPress

utilizando el parametro KeyCode en lugar de KeyAscii para obtener la tecla presionada,  tambien pasa otro parametro Shift que es por si se utilizó alguna combinacion al presionar la tecla y puede contener los siguientes valores

Parametro Shift:

Valor - Tecla
Código: Text
  1. 1- Shift
  2. 2- Ctrl
  3. 3- Ctrl + Shift
  4. 4- Alt
  5. 5- Shift + Alt
  6. 6- Ctrl + Alt
  7. 7- Shift+ Ctrl + Alt
  8.  

Saludos
Título: Re: Msflexgrid.removeitem
Publicado por: UserCode en Miércoles 11 de Julio de 2007, 16:54
:good:
Título: Re: Msflexgrid.removeitem
Publicado por: sergiofelix en Sábado 21 de Julio de 2007, 02:28
Cita de: "UserCode"
hola muchachos, que tal le ha ido con quien ha hecho uso del .RemoveItem de un MSFlexgrid

Yo lleno un MSFlexgrid en memoria al seleccionar unos Item de un Combobox asi:

Código: Text
  1.  
  2.     MSF.Rows = MSF.Rows + 1
  3.     MSF.Row = MSF.Rows - 1
  4.  
  5.     MSF.Col = 1
  6.     MSF.Text = cmbDescripcion.Text
  7.     
  8.     MSF.Col = 2
  9.     MSF.Text = cmbDesc1.Text
  10.     
  11.     MSF.Col = 3
  12.     MSF.Text = txtMonto1.Text
  13.  
  14.  

Pero no he podido ver bien como armar el codigo sin que de errores del Remover en caso de desear quitar un agregado al MSFlexgrid

Estaba probando algo como esto pero no me ha servido:
Código: Text
  1.  
  2.     For i = 1 To MSF.Rows - 1
  3.         MSF.Row = i
  4.         MSF.Col = i
  5.     Next
  6.     MSF.RemoveItem (MSF.Row)
  7.  
  8.  

Alguien ha logrado o sabe como hacer un correcto uso del RemoveItem del MSFlexgrid sin morir en el intento  :unsure:
por lo que dices "quitar la ultima fila no fija" deseas quitar todas las filas, para eso solo inicializa tu msflexgrid

msflexgrid.rows=1
msflexgrid.cols=2
msflexgrif.formatstring="codigo  | " & vbtab & "Descripcion                           |"

vbtab = hace que automaticamente de cambie de celda a la derecha en ma misma fila
Título: Re: Msflexgrid.removeitem
Publicado por: UserCode en Lunes 23 de Julio de 2007, 00:00
Bueno yo termine con esto, me va muy bien con eso B) igual tomo nota para otras formas, todos los caminos conducen a roma  :P
Código: Text
  1.  
  2. Private Sub MSHF_KeyDown(KeyCode As Integer, Shift As Integer)
  3.     If KeyCode = 46 Then 'Delete
  4.         If MSHF.Row > 1 Then ' 1 es el tamaño en fila del grid - 1, o sea MshFlexGrid.Rows - 1
  5.             MSHF.RemoveItem (MSHF.Row)
  6.             MSHF.Refresh
  7.         ElseIf MSHF.Row = 1 Then
  8.             MSHF.Clear: MSHF.Rows = 1
  9.             MSHF.Col = 1: MSHF.Row = 0: MSHF.Text = "Descripción"
  10.             MSHF.Col = 2: MSHF.Row = 0: MSHF.Text = "Monto"
  11.         End If
  12.     End If
  13. End Sub
  14.  
  15.