Miércoles 6 de Noviembre de 2024, 02:48
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Shape
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Shape (Leído 2007 veces)
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Shape
«
en:
Lunes 2 de Mayo de 2005, 18:04 »
0
Hola chicos de SoloCodigo, tengo unas cuantas consultas es que estoy un poquito enrredado.
Estoy trabajando con el control shape para unos cortes que le debo hacer a un shape mas largo, el programa consiste asi:
Manejo un control shape de un tamaño grande y otro de tamaños mas pequeños.
En el shape mas grande me deben caber cierta cantidad de los shapes mas pequeños, de acuerdo a esta formula.
Código: Text
'TxtAlLami es el Height del Shape grande
'TxtAlCor es el Height del Shape pequeño
'TxtAnLami es el Width del Shape grande
'TxtAnCor es el Width del Shape pequeño
x = Val(TxtAlLami.Text) / Val(TxtAlCor.Text)
y = Val(TxtAnLami.Text) / Val(TxtAnCor.Text)
a = x * y
Esta formula calcula la cantidad de veces que cabe el shape pequeño en el grande, pero ahora los problemas son:
1.) Acomodar la cantidad de shapes pequeños, que los usos como un array de controles, dentro del grande en la mejor forma, vertical u horizontal, sin pasarme ni del height o el width del grande, uno debajo del otro, y cuando pase el height o el width, seguir al lado de los primeros shapes.
2.) Se pueden dar diferentes tamaños al shape pequeño, y acomodar en diferentes partes del shape grande estos pequeños de la mejor forma, sin gastar espacio para los demas shapes.
PD. sino me entienden me desgloso un poquito mejor
Gracias Chao
[/color]
Tweet
El pasado son solo recuerdos, el futuro son solo sueños
Soultaker
Miembro HIPER activo
Mensajes: 972
Nacionalidad:
Re: Shape
«
Respuesta #1 en:
Lunes 2 de Mayo de 2005, 22:34 »
0
Pa' empezar las propiedades estas que las usas inversamente, estas que usas la propiedad width en el height del objeto y viceversa, fijate en tus imagenes el largo que le das es mayor al ancho pero las imagenes la muestran al revez.
Una solución a lo que pides es que colocas un shape chico en el grande, al colocarlo.
1ero. Colocar el primer
SHAPE chico
en el TOP del
SHAPE grande
.
2do. Colocar el
segundo SHAPE chico
en el HEIGHT + TOP del primer SHAPE chico. Y seguir haciendo ese procedimiento hasta que pase el height del
SHAPE grande
.
3ro. Llegas y sobrepasa al HEIGHT del
SHAPE grande
, ahora como sabes que pasaste el SHAPE grande, fácil sumas el HEIGHT y el TOP del
SHAPE grande
y también sumas el HEIGHT y el TOP del
SHAPE chico
y luego verificas si el resultado del SHAPE chico es mayor al del
SHAPE grande
.
4to. Colocar al costado del primer
SHAPE chico
, en este caso es igual solo que ahora sumas el WIDTH y el LEFT del
SHAPE chico
y el TOP de este, en el LEFT del
SHAPE chico
que va al costado del primer
SHAPE chico
le colocas la suma del WIDTH y del HEIGHT de este y en el TOP del
SHAPE chico
que va al costado del primer
SHAPE chico
le colocas el TOP del primer
SHAPE chico
.
Bueno espero que me hayas entendido.
Citar
PD. sino me entienden me desgloso un poquito mejor
Yo también
http]
foros,
programacion,
c
,
c++
,
java
,
linux
,
videojuegos
,
directX
,
.NET
,
visual basic
,
robotica
,
microprocesadores
Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente
Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado
<<< Harol Moreyra Bendezú >>>
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Shape
«
Respuesta #2 en:
Martes 3 de Mayo de 2005, 00:28 »
0
El Width va hacia la derecha y el Height hacia abajo
Ok man, esta muy facil y bonito lo que estas diciendo, es mas lo de colocar debajo del otro es muy facil, pero hay un problema en el que no caes en cuenta, como vistes, se pueden colocar shapes de diferentes tamaños, y aqui es donde entra el problema (POR LO MENOS PARA MI).
¿Como racionar a la perfección el shape grande, para que entren diferentes shapes pequeños?
Mira el codigo tan cochino que tengo para acomodar los shapes dentro del grande, he incluso sigue sin servir.
Código: Text
Private Sub Command2_Click()
On Error Resume Next
Dim vc
Shp(0).Top = Shp1.Top
Shp(0).Left = Shp1.Left
For h = 1 To 19
vc = h
Shp(h).Left = Shp1.Left
Shp(h).Top = Shp(h - 1).Height + Shp(h - 1).Top + 15
If Shp(h).Top + Shp(h).Height > Shp1.Height Then
MsgBox "YA PASO EL MAXIMO"
Exit For
' Shp(h).Left = Shp(0).Width + 100
End If
Next
MsgBox vc + 1
Shp(vc + 1).Top = Shp1.Top
'Aqui 'ta el problema me esta dando 0 el vc, voy a ver como lo arreglo
Shp(vc + 1).Left = Shp(vc - vc).Width + 125
vc = vc + 1
For h = vc + 1 To 19
vc = h
Shp(h).Left = Shp(h - vc).Width + 125
Shp(h).Top = Shp(h - 1).Height + Shp(h - 1).Top + 15
If Shp(h).Top + Shp(h).Height > Shp1.Height Then
MsgBox "YA PASO EL MAXIMO"
Exit For
End If
Next
MsgBox vc + 1
Shp(vc + 1).Top = Shp1.Top
Shp(vc + 1).Left = Shp(vc - vc).Width + 125
vc = vc + 1
For h = vc + 1 To 19
vc = h
Shp(h).Left = Shp(h - vc).Width + 125
Shp(h).Top = Shp(h - 1).Height + Shp(h - 1).Top + 15
If Shp(h).Top + Shp(h).Height > Shp1.Height Then
MsgBox "YA PASO EL MAXIMO"
Exit For
End If
Next
End Sub
Ojala me entiendas.
Gracias Chao[/color]
El pasado son solo recuerdos, el futuro son solo sueños
Soultaker
Miembro HIPER activo
Mensajes: 972
Nacionalidad:
Re: Shape
«
Respuesta #3 en:
Martes 3 de Mayo de 2005, 22:20 »
0
Aca esta un ejemplo de lo que quieres, pero aqui solo lo pone debajo de cada shape, si quieres cambiale de tamaño al shape grande y siempre lo va poniendo debajo y no se pasa el shape grande, ya te dejo de tarea pa que lo hagas al costado, usa la misma logica.
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
http]
foros,
programacion,
c
,
c++
,
java
,
linux
,
videojuegos
,
directX
,
.NET
,
visual basic
,
robotica
,
microprocesadores
Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente
Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado
<<< Harol Moreyra Bendezú >>>
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Shape
«
Respuesta #4 en:
Martes 3 de Mayo de 2005, 22:25 »
0
Esto ya lo hice Soultaker, es mas lo del lado ya tambien, pero lo que no trunka es cuando son más de 2 columnas ay viene el chingo problema
y no lo he podido acomodar.
El pasado son solo recuerdos, el futuro son solo sueños
Soultaker
Miembro HIPER activo
Mensajes: 972
Nacionalidad:
Re: Shape
«
Respuesta #5 en:
Martes 3 de Mayo de 2005, 23:18 »
0
No te entiendo a que te refieres con mas de dos columnas
http]
foros,
programacion,
c
,
c++
,
java
,
linux
,
videojuegos
,
directX
,
.NET
,
visual basic
,
robotica
,
microprocesadores
Para los nuevos usuarios de este Foro, por favor leerse esta discusión.
Cómo Hacer Preguntas De Forma Inteligente
Ojos que no ven... pisan caquita
Camarón que se duerme... muere electrocutado
<<< Harol Moreyra Bendezú >>>
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Shape
«
Respuesta #6 en:
Miércoles 4 de Mayo de 2005, 16:19 »
0
Hola radical & co.
No sé si he comprendido muy bien (si no, házmelo saber), pero creo que esto debería de servirte:
Código: Text
Private Sub Command2_Click()
Dim lRows As Long, lCols As Long
lRows = Int(Shape1.Height / Shape2(0).Height)
lCols = Int(Shape1.Width / Shape2(0).Width)
Dim lRow As Long, lCol As Long, lIdx As Long
Dim iFrom As Integer
Shape2(0).Move Shape1.Left, Shape1.Top
For lRow = 1 To lRows
If lRow > 1 Then
iFrom = 1
Else
iFrom = 2
End If
For lCol = iFrom To lCols
lIdx = lIdx + 1
Load Shape2(lIdx)
Shape2(lIdx).Move Shape1.Left + Shape2(0).Width * (lCol - 1), Shape1.Top + Shape2(0).Height * (lRow - 1)
Shape2(lIdx).Visible = True
Next lCol
Next lRow
End Sub
Por otro lado, ignoro qué es lo que pretendes hacer, pero piensa en la posibilidad de dibujar rectángulos mediante el método Line, así te ahorrarías cargar el form con tantos controles.
Suerte.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Shape