Hola a todos tengo un problema tengo un Msflexgrid al que le cargo como datos los nombres de archivo que hay en una carpeta.... esto lo hago bien
mi problema es como hacer para que el usuario solo pueda seleccionar una fila y no varias he buscado en la ayuda de VB 6 y en la web y no encontre ninguna propiedad tal como multiline (la pondria en false) pero esta propiedad no esta en el flex??
he intentado usar True DB Grid pero no se como cargar los datos de los archivos...
si se como cargar datos desde una BD (pero esto no es lo que necesito) tampoco puedo cargar los nombres a una bd y obtenerlos desde alli no por que no sepa sino por que no es mi objetivo
PD tambien me seria util aprender a cargar estos datos en el True DB Grid :huh:
gracias a todos
un saludo
Veo que el tema tiene algunas visitas pero cero respuestas :-( si no se entiende cual es el problema por favor diganmelo que lo vuelvo a plantear
un saludo para todos
Creo que con lo del True DB Grid lo que tienes que hacer es cargarlo a una db y luego pasarselo al True DB Grid con un ado u otro componente pero no quieres que sea desde una db, otra opcion seria copiarlos en txt y luego con el componente data control se lo puedes cargar al True DB Grid bueno esa es otra idea con lo del flex ni idea ;D pero me inmagino que no tiene dificultad eso deeb aparecer si buscas bien :silbar:
Saludos...
garcias por responder Angeldj27 pero los datos si o si los debo leer de la carpeta seleccionada no los puedo obtener ni de una BD ni desde un txt
la verdad busque y no encontre nada para que no me seleccionen multiline en el flex
gracias
un saludo
Cita de: fabricioAngel en 16 Septiembre 2009, 17:13 PM
garcias por responder Angeldj27 pero los datos si o si los debo leer de la carpeta seleccionada no los puedo obtener ni de una BD ni desde un txt
la verdad busque y no encontre nada para que no me seleccionen multiline en el flex
gracias
un saludo
Cuando el user seleccione la carpeta lees primero la carpeta y esos datos se los pasa al txt o db y luego la cargas en el grid...
Dim Arch As String
Arch = Dir("c:\Folder\*.*")
Do While Arch <> ""
'Aky Llenas el .Txt con Arch
Arch = Dir
Loop
'puede o no ir este
'Private Declare Function WaitMessage Lib "user32" () As Long
sub main()
Dim Arch As String
Arch = Dir("c:\Folder\*.*")
Do While Arch <> ""
'Aky Llenas el .Txt con Arch
Arch = Dir
doevents
' waitmessage 'puede o no ir este
Loop
end sub
Es una pequeña correcciòn o de lo contrario el app se trabara y nadie desea eso verdad?
Seguro porque lo probe llenando un list y funciona de 10 bueno hasta donde probe :P jiji
Saludos..
Hola, mas que multilinea, seria multiseleccion o algo parecido, aca tenes un ejemplo de como "bloquear" la multiseleccion...
Option Explicit
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long
Private vBloqueado As Boolean
Private Sub Form_Load()
With MSHFlexGrid1
.FixedCols = 0
.FormatString = "Nombre"
.AddItem "Sebastian"
.AddItem "Leandro"
.AddItem "Cobein"
.AddItem "Ivo"
.AddItem "Karcrack"
.ColWidth(0) = 1500
.ColWidth(1) = 0
.RowHeight(1) = 0
End With
End Sub
Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = vbLeftButton Then
MSHFlexGrid1.SelectionMode = flexSelectionFree
MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
If Not vBloqueado Then LockWindowUpdate (MSHFlexGrid1.hWnd)
vBloqueado = True
End If
End Sub
Private Sub MSHFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
MSHFlexGrid1.SelectionMode = flexSelectionByRow
MSHFlexGrid1.RowSel = MSHFlexGrid1.Row
LockWindowUpdate (0&)
vBloqueado = False
End Sub
saludos.
gracias a todos por sus respuestas ... por lo que veo no existe una propiedad para que el usuario solo seleccione una linea ....
voy a probar sus codigos y despues les cuento com ome fue :D
un saludo
Cita de: fabricioAngel en 22 Septiembre 2009, 21:36 PM
gracias a todos por sus respuestas ... por lo que veo no existe una propiedad para que el usuario solo seleccione una linea ....
voy a probar sus codigos y despues les cuento com ome fue :D
un saludo
Para que seleccione una sola línea en un MsFlexgrid te referís?
Está la propiedad
SELECTION MODE y la debés poner en FlexSelectionByRow y ahí te marca la fila que clickeas.
No se si te referís a eso, pero buen.
Saludos!
Hola ka0s sabes como hacer lo mismo que me respondiste pero usando un TDBGrid??
quiero que al seleccionar me pinte toda la fila y solo me deje eljir una (si presiona Ctrl que solo seleccione (pinte) una fila por ves)
gracias saludos
TDBGrid1.Splits(0).MarqueeStyle = 3