Visual Basic - alwaysontop

Life is soft - evento anual de software empresarial
 
Vista:

alwaysontop

Publicado por juan manuel fusero (31 intervenciones) el 10/11/2006 23:25:38
hola a todos:
estoy haciendo una validacion de textbox y quiero que, cuando el usuario no haya ingresado nada por ejemplo, me aparezca un formulario llamado mensajes que se superponga al formulario de logeo. utilize una api que transcribo a continuacion (la hice en un modulo):
declare Function SetWindowPos Lib "user32" (ByVal HWND As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_SHOWWINDOW = &H40


Public Sub AlwaysonTop(Mensajes As Form, estado As Boolean)
Dim wFlags As Long
Dim ret As Long

wFlags = SWP_NOMOVE Or SWP_NOSIZE
If estado Then
ret = SetWindowPos(Mensajes.HWND, HWND_TOPMOST, 0, 0, 0, 0, wFlags)
Else
ret = SetWindowPos(Mensajes.HWND, HWND_NOTOPMOST, 0, 0, 0, 0, wFlags)
End If

End Sub
el problema es que cuando llamo la funcion alwasontop desde un textbox con el siguiente codigo:
if (textbox="") then
AlwaysonTop(Mensajes)
end if

me aparece un error diciendo que los tipos no coinciden. lo que quisiera saber es si declare bien la funcion y poruqe me aparece este error.

agradeceria cualquier respuesta.
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:alwaysontop

Publicado por The Emulator (96 intervenciones) el 12/11/2006 16:57:02
Y si solo necesitas mostrar un mensaje para decirle al usuario que escriba algo porque no muestrar un simple MsgBox

If Text1.Text="" Then
MsgBox "Escribe algo en la caja de texto",VbCritical,"Error"
End If

Os si es que quieres un formulario de mensaje personalizado simplemente muestra tu formulario de mensaje en forma modal de esa forma tu form de mensaje siempre estaria encima del de logeo

If Text1.Text="" Then
FormularioMensaje.Show VBModal
End If

De esa forma te ahorras el rollo de las APIs con la que tienes problemas.

Estudia primero sobre Metodos y Funciones y como se usan ya que al parecer no sabes bien como funcionan, ya que debes saberlo para poder usar llamadas a las APIs.

Saludos
http://www.theemulator.tk
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