TRUCO 1: ¿Cómo pasar de números romanos a árabes?.
Aplicable a Microsoft Visual Basic 5, Visual Basic 6
Para pasar de números romanos a árabes utilice la siguiente función, que coge el número en forma de cadena y devuelve el número árabe.
Function ConvertirArabe(Romano As String) As Integer
Dim Numero As Integer, Valor1 As Integer
Dim Valor2 As Integer, Cadena As String
If Len(Romano) = 0 Then ConvertirArabe = 0: Exit Function
Cadena = Trim(Romano)
Numero = 0
Do
Valor1 = VerValor(left(Cadena, 1))
Cadena = Right$(Cadena, Len(Cadena) - 1)
Valor2 = VerValor(left(Cadena, 1))
If Valor1 >= Valor2 Then
Numero = Numero + Valor1
Else
Numero = Numero - Valor1
End If
Loop Until Len(Cadena) = 0
ConvertirArabe = Numero
End Function
Function VerValor(Simbolo As String) As Integer
Select Case Simbolo
Case "I"
VerValor = 1
Case "V"
VerValor = 5
Case "X"
VerValor = 10
Case "L"
VerValor = 50
Case "C"
VerValor = 100
Case "D"
VerValor = 500
Case "M"
VerValor = 1000
Case "Q"
VerValor = 5000
Case "H"
VerValor = 10000
End Select
End Function
Función creada por Maverick. Originalmente publicada en http://www.programando.com/visualbasic/crazy/FAQ.htm
TRUCO 2: ¿Cómo pasar de números árabes a romanos?.
Aplicable a Microsoft Visual Basic 5, Visual Basic 6
Para pasar de números árabes a romanos utilice la siguiente función, que coge el número y devuelve una cadena con el número en romano.
Function ConvertirRomano(Numero As Integer) As String
Dim Romano As String
Dim I As Integer, Digito As Integer, x As Integer
Dim Cadena As String, CadenaTmp As String
Dim Simbolo1 As String * 1, Simbolo2 As String * 1
Dim Simbolo3 As String * 1
Cadena = CStr(Numero)
For x = 1 To Len(Cadena)
If Len(Cadena) = 4 Then
Simbolo1 = "M"
Simbolo2 = "Q"
Simbolo3 = "H"
Digito = CInt(left$(Cadena, 1))
Cadena = Right$(Cadena, 3)
ElseIf Len(Cadena) = 3 Then
Simbolo1 = "C"
Simbolo2 = "D"
Simbolo3 = "M"
Digito = CInt(left$(Cadena, 1))
Cadena = Right$(Cadena, 2)
ElseIf Len(Cadena) = 2 Then
Simbolo1 = "X"
Simbolo2 = "L"
Simbolo3 = "C"
Digito = CInt(left$(Cadena, 1))
Cadena = Right$(Cadena, 1)
ElseIf Len(Cadena) = 1 Then
Simbolo1 = "I"
Simbolo2 = "V"
Simbolo3 = "X"
Digito = CInt(left$(Cadena, 1))
Cadena = ""
End If
If Digito <= 3 Then
For I = 1 To Digito
CadenaTmp = CadenaTmp & Simbolo1
Next I
ElseIf Digito < 5 Then
CadenaTmp = Simbolo1 & Simbolo2
ElseIf Digito = 5 Then
CadenaTmp = Simbolo2
ElseIf Digito <= 8 Then
CadenaTmp = Simbolo2
For I = 1 To Digito - 5
CadenaTmp = CadenaTmp & Simbolo1
Next I
ElseIf Digito = 9 Then
CadenaTmp = Simbolo1 & Simbolo3
End If
Romano = Romano & CadenaTmp
CadenaTmp = ""
Next x
ConvertirRomano = Romano
End Function
Función creada por Maverick. Originalmente publicada en http://www.programando.com/visualbasic/crazy/FAQ.htm
TRUCO 3: ¿Cómo hacer desaparecer el cursor del ratón?.
Aplicable a Microsoft Visual Basic 5, Visual Basic 6
Para hacer desaparecer y aparecer el cuesor del ratón pegue el siguiente código en el módulo:
Declare Function ShowCursor Lib "user32" (ByVal bShow_
As Long) As Long
Debe crear dos botones con:
Private Sub Command1_Click()
result = ShowCursor(False)
End Sub
y
Private Sub Command2_Click()
result = ShowCursor(True)
End Sub
Es muy importante que, en el caso del botón 2 que hace reaparecer el cursor, permita seleccionarlo desde el teclado poniendo su propiedad Caption&Mostrar.
Función creada por Eduardo Fórneas. Originalmente publicada en http://www.arrakis.es/~eforneas/breves.htm
TRUCO 4: ¿Cómo redondear un número?.
Aplicable a Microsoft Visual Basic 5, Visual Basic 6
Utilice la siguiente rutina para redondear un número. Le devolverá el número redondeado en formato Double con tantos decimales como indique en el parámetro 'intCntDec'.
Public Function Redondear (dblnToR As Double,_
Optional intCntDec As Integer) As Double
Dim dblPot As Double
Dim dblF As Double
If dblnToR < 0 Then dblF = -0.5 Else: dblF = 0.5
dblPot = 10 ^ intCntDec
Redondear = Fix(dblnToR * dblPot * (1 + 1E-16) + dblF) / dblPot
End Function
Truco originalmente publicado en http://www.somser.com/
TRUCO 5: ¿Cómo pasar de un control a otro pulsando Intro?.
Aplicable a Microsoft Visual Basic 5, Visual Basic 6
Para pasar de un control a otro pulsando Intro utilice la siguiente código en el evento KeyPress de cada control. El orden que siguen será el marcado en la propiedad TabIndex.
If KeyAscii = 13 Then
SendKeys "{Tab}", True
End If
Función creada por Maverick. Originalmente publicada en http://www.programando.com/visualbasic/crazy/FAQ.htm
|