Visual Basic - personalizar?

Life is soft - evento anual de software empresarial
 
Vista:

personalizar?

Publicado por fabian (6 intervenciones) el 10/11/2006 21:59:23
bueno gracias pero como personalizo un msgbox no tengo ni la minima idea me pueden ayudar gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:personalizar?

Publicado por AlbertoV (200 intervenciones) el 10/11/2006 23:10:56
Te puedo pasar el que hice. Si te interesa escribime a mi mail.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:personalizar?

Publicado por AlbertoV (200 intervenciones) el 11/11/2006 03:11:55
No cobro un mango guevo. Pasa que es muy largo el código para meterlo acá. Además el Form se lo puedo mandar como achivo adjunto, cosa que no puedo hacer acá. Si te interesa también te lo puedo mandar a vos, así te entretenés un rato con algo y bajás un poco tu agresividad contra los novatos.
Muchas gracias por tus piropos.
Un besito.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:personalizar?

Publicado por necro-air (77 intervenciones) el 11/11/2006 15:39:45
ncha!!:

No suelo estar de acuerdo con guevo, pero esta vez tiene razon.
No saber personalizar msgbox tiene un trago largo, pero no ponerlo en el foro que es para que todos lo podamos ver (y mas una cosa que no creo que se necesite 300 linea de codigo) es algo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:personalizar?

Publicado por AlbertoV (200 intervenciones) el 11/11/2006 20:10:45
Pues si tanto insisten... este es el código del Form llamado FMensaje.frm:
==========================================================
Private Sub Bt1_Click()
Resp = 1
Unload FMensaje
End Sub

Private Sub Bt2_Click()
Resp = 2
Unload FMensaje
End Sub

Private Sub Form_Activate()
If Bt2.Visible = True Then
Bt2.SetFocus
Else
Bt1.SetFocus
End If
End Sub
--------------------------------------------------------------------------------------------------
Este Form tiene:
10 cuadros Image, nombrados desde Ima(0) hasta Ima(9),
2 CommandButton llamados Bt1 y Bt2,
2 Label llamadas LMen1 y LMen2,
1 Frame llamado Cuadro
Hasta ahí el Form.

Esta es la Public Sub que recibe los parámetros y maneja al Form anterior, se debe ubicar en un módulo para que puedan accederla todos los Forms del proyecto:

Public Sub MENSAJE(BarrTitu As String, LTex1 As String, LTex2 As String, BCap1 As String, BCap2 As String, Ico As Integer)
Dim Lar1 As Integer, Lar2 As Integer, LarM As Integer, S As Integer

'Los argumentos a pasarle son 4 cadenas y un entero:
'Las 4 cadenas son: el texto a mostrar en la barra de título, el texto de la primera línea 'del mensaje, el de la 2da línea, el Caption del 1er botón, el Captio del 2do botón, y un 'dígito que le hará mostrar tal o cual imagen en la Ima(x) correspondiente.
'Lar1 y Lar2 contendrá los largos de las labels que son la primera y la segunda
'líneas del mensaje

For S = 0 To 9
FMensaje.Ima(S).Visible = False
Next S

FMensaje.Caption = BarrTitu
FMensaje.LMen1.Caption = LTex1
FMensaje.LMen2.Caption = LTex2
FMensaje.Bt1.Caption = BCap1
FMensaje.Bt2.Caption = BCap2
FMensaje.Ima(Ico).Visible = True
Lar1 = FMensaje.LMen1.Width
Lar2 = FMensaje.LMen2.Width
LarM = Lar1
If Lar2 > LarM Then LarM = Lar2
FMensaje.Cuadro.Width = LarM * 1.1
FMensaje.Cuadro.Left = FMensaje.Ima(0).Left + FMensaje.Ima(0).Width * 1.4
FMensaje.LMen1.Left = (FMensaje.Cuadro.Width - FMensaje.LMen1.Width) / 2
FMensaje.LMen2.Left = (FMensaje.Cuadro.Width - FMensaje.LMen2.Width) / 2
FMensaje.Width = FMensaje.Cuadro.Width + FMensaje.Ima(0).Width * 2

If BCap2 = "" Then
FMensaje.Bt2.Visible = False
FMensaje.Bt1.Left = (FMensaje.Width - FMensaje.Bt1.Width) / 2
Else
FMensaje.Bt2.Visible = True
FMensaje.Bt1.Left = (FMensaje.Width - FMensaje.Bt1.Width * 2.1) / 2
FMensaje.Bt2.Left = FMensaje.Bt1.Left + FMensaje.Bt1.Width * 1.1
End If

FMensaje.Show 1
End Sub
================================================================
Si se quiere mostrar un mensaje con un solo botón, el argumento del Caption del otro se pone como cadena vacía (""),.
La variable Resp es Public Integer y sirve para saber cual botón cliqueó el usuario y según eso que debe hacer el programa.

Ahora un ejemplo: supongamos que donde se necesitan dos fechas para buscar algo el usuario se equivoca y pone en "hasta" una fecha anterior a "desde":

If Hasta < Desde then
Call MENSAJE("Fechas Incongruentes", "La fecha ingresada en el casillero 'Hasta' es", "anterior a la ingresada en 'Desde'. Verifique", "Corregir", "", 6)

TDesde.SelStart = 0
TDesde.SelLenght = Len(TDesde.Text)
TDesde.SetFocus

End If

el resultado es más o menos así:
-----------------------------------------------------------------------------------------
| Fechas incongruentes |
-----------------------------------------------------------------------------------------
| La fecha ingresada en el casillero 'Hasta' es |
| anterior a la ingresada en 'Desde'. Verifique |
| -------------------- |
| | Corregir | |
| -------------------- |
-----------------------------------------------------------------------------------------
... y en el espacio de la izquierda se muestra la imagen Nº 6, que creo que era un rayo.
=======================================================
Bueno, ahí lo tienen, vamos qué aportan ahora o en el futuro cada uno de los reclamosos. De una cosa estoy muy seguro: no lograrán que vuelva a hacer todo esto, cuando es mucho más fácil adjuntar en un mail. No meto spywares, ni virus, ni soy drogadicto, ni me gustan los jovenzuelos. Mi casilla de mail no tiene pulgas ni vinchucas, ni tampoco muerde.
Chau.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar