Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Extraer el maximo valor de un MSflexgrid

Estas en el tema de Extraer el maximo valor de un MSflexgrid en el foro de Visual Basic clásico en Foros del Web. Como puedo extraer el Valor maximo y minimo de un Msflexgrid, de un columna en particular dejo este ejemplo que realiza una conexion con AUTOCAD, ...
  #1 (permalink)  
Antiguo 30/08/2007, 18:39
 
Fecha de Ingreso: agosto-2007
Ubicación: Peru
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Busqueda Extraer el maximo valor de un MSflexgrid

Como puedo extraer el Valor maximo y minimo de un Msflexgrid, de un columna en particular dejo este ejemplo que realiza una conexion con AUTOCAD, dibuja en rectangulo (en el dibujo cad), muestra los valores en coordenadas ( XYZ ) en un Msflexgrid, deseo extraer el maximo valor de la Fila X y el minimo valor de la misma fila, mostrandolo en un nuevo Textbox, alguna idea

[FONT="Courier New"]Option Explicit
Dim Acad As Object
Dim AcadDoc As Object
Dim AcadModel As Object
Dim AcadPapel As Object
Dim AcadUtil As Object
Dim Answ As String

Private Sub Command1_Click()
'Define las variables
Dim Punto1, Punto2
Dim PuntoTras(2) As Double
Dim PuntosPol(9) As Double
Dim Valor_X As Double, Valor_Y As Double
Form1.Hide
Acad.WindowState = acMax
AcadUtil.Prompt (vbCrLf & " --------------" & vbCrLf)
AcadUtil.Prompt (vbCrLf & " --------------" & vbCrLf)
AcadUtil.Prompt (vbCrLf & " ")
'Captura el Primer Punto
Punto1 = AcadUtil.GetPoint(, "Primera Esquina: ")

'Asigna los Valores del Primer Punto Tomado
PuntoTras(0) = Punto1(0): PuntoTras(1) = Punto1(1): PuntoTras(2) = Punto1(2)
' AcadUtil.Prompt (vbCrLf & " ")
Punto2 = AcadUtil.GetCorner(PuntoTras, "Esquina Opuesta: ")
PuntosPol(0) = Punto1(0): PuntosPol(1) = Punto1(1)
PuntosPol(2) = Punto2(0): PuntosPol(3) = Punto1(1)
PuntosPol(4) = Punto2(0): PuntosPol(5) = Punto2(1)
PuntosPol(6) = Punto1(0): PuntosPol(7) = Punto2(1)
PuntosPol(8) = Punto1(0): PuntosPol(9) = Punto1(1)
'Dibuja la polilinea Cerrada
Call AcadDoc.ModelSpace.AddLightWeightPolyline(PuntosPo l)
'Muestra en un TextBox las coordenadas del primer y segundo punto
Text1.Text = Format(Str(Punto1(0)), "#####0.00"): Text2.Text = Format(Str(Punto1(1)), "#####0.00")
Text3.Text = Format(Str(Punto1(2)), "#####0.00")
'Text3.Text = Format(Str(Punto2(0)), "#####0.00"): Text4.Text = Format(Str(Punto2(1)), "#####0.00")

'Calcula los valores de "X" y de "Y"
Valor_X = Punto1(0) - Punto2(0): Valor_Y = Punto1(1) - Punto2(1)

Dim Filas As Integer
Dim Numeracion As String
Filas = MSFlexGrid1.Rows - 1
MSFlexGrid1.AddItem Str(Filas + 1) + Chr(9) + Text1.Text + Chr(9) + Text2.Text + Chr(9) + Text3.Text

'Muestra un mensaje de texto con los valores absolutos obtenidos de "X" y de "Y"
Form1.Show
' Answ = MsgBox("Valor de X = " + Format(Str(Abs(Valor_X)), "#####0.00") + Chr(13) + _
"Valor de Y = " + Format(Str(Abs(Valor_Y)), "#####0.00") + Chr(13) + _
"", 0, "Valores de ancho y alto ")
End Sub

Private Sub Form_Load()
Dim Answ As String
On Error Resume Next
Err.Clear
Set Acad = GetObject(, "AutoCAD.Application")
If Err.Number <> 0 Then
Answ = MsgBox("Abra AutoCAD!", vbCritical, "Error")
Else
Set AcadDoc = Acad.ActiveDocument
If Err.Number <> 0 Then
Answ = MsgBox("Active un Dibujo DWG!", vbCritical, "Error")
End If
End If
Set AcadDoc = Acad.ActiveDocument
Set AcadModel = AcadDoc.ModelSpace
Set AcadPapel = AcadDoc.PaperSpace
Set AcadUtil = AcadDoc.Utility
MSFlexGrid1.Rows = 1
MSFlexGrid1.TextMatrix(0, 0) = "N°": MSFlexGrid1.TextMatrix(0, 1) = "X"
MSFlexGrid1.TextMatrix(0, 2) = "Y": MSFlexGrid1.TextMatrix(0, 3) = "Z"
End Sub
  #2 (permalink)  
Antiguo 31/08/2007, 00:17
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Extraer el maximo valor de un MSflexgrid

Declara dos variables:

Código:
Dim  Min  as integer
Dim  Max as integer 

Min= 0
Max=  9999999
Cuando cargues la coordenada en la celda comparas y guardas en cada variable el menor y mayor y asi cuando termine de cargar el flexgrid tendrás esos valores.


Un saludo.
  #3 (permalink)  
Antiguo 31/08/2007, 07:10
 
Fecha de Ingreso: agosto-2007
Ubicación: Peru
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Extraer el maximo valor de un MSflexgrid

ok pero se manejan valores de tipo negativo y las coordenadas pueden ser de hasta 8000000.000 en positivo y negativo como extraeria esto con un rutina para una columna especifica
  #4 (permalink)  
Antiguo 01/09/2007, 02:44
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Re: Extraer el maximo valor de un MSflexgrid

Usa variables de tipo double o single, según se acoplen al proyecto.

Para saber en que columna y fila nos posicionamos usa las propiedades:
Código:
flexgrid .Col = 2
flexgrid .Row = 1
Donde col es columna y row es la fila.

Saludos.
  #5 (permalink)  
Antiguo 02/09/2007, 11:40
 
Fecha de Ingreso: agosto-2007
Ubicación: Peru
Mensajes: 5
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: Extraer el maximo valor de un MSflexgrid

Private Sub Command4_Click()
Dim X_Col As Integer
Dim X_Temp As Double, X_Max As Double
Dim X_Min As Double
Do While X_Col < MSFlexGrid1.Rows - 1
X_Col = X_Col + 1
X_Temp = MSFlexGrid1.TextMatrix(X_Col, 1)
If X_Temp > X_Max Then
X_Max = X_Temp
' Else
' If X_Temp < X_Min Then
' X_Min = X_Temp
' End If
End If
Loop
MsgBox X_Max '+ " " + X_Min
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:29.