Simple programa creado por mi.
En futuras versiones lo que me gustaría hacer es que cuando se pasara el ratón sobre realizar, acerca de... se pusiera de otro color (si alguien sabe como se hace que lo diga).
Código: Seleccionar todo
#NoTrayIcon
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_Comment=Programa para resolver ecuaciones de 2º grado
#AutoIt3Wrapper_Res_Description=Programa para resolver ecuaciones de 2º grado
#AutoIt3Wrapper_Res_Fileversion=1.0.0.0
#AutoIt3Wrapper_Res_LegalCopyright=© 2009-2010 Odraude
#AutoIt3Wrapper_Res_Language=1034
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Sin icono en barra de tareas
;Incluyo el achivo GUIConstants.au3
#include <GUIConstants.au3>
;Incluyo el achivo EditConstants.au3
#include <EditConstants.au3>
;Incluyo el achivo StaticConstants.au3
#include <StaticConstants.au3>
;Incluyo el achivo WindowsConstants.au3
#include <WindowsConstants.au3>
;Formulario
$Form1 = GUICreate("Resolver ecuaciones de 2º grado", 298, 226, -1, -1, $WS_POPUP)
GUISetBkColor(0x000000)
;Cajas de texto
$Input1 = GUICtrlCreateInput("", 136, 32, 145, 21)
GUICtrlSetTip(-1, "Introduzca el valor de a")
$Input2 = GUICtrlCreateInput("", 136, 56, 145, 21)
GUICtrlSetTip(-1, "Introduzca el valor de b")
$Input3 = GUICtrlCreateInput("", 136, 80, 145, 21)
GUICtrlSetTip(-1, "Introduzca el valor de c")
GUICtrlCreateLabel("a:", 112, 32, 20, 17)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1, "Valor de a")
GUICtrlCreateLabel("b:", 112, 56, 20, 17)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1, "Valor de b")
GUICtrlCreateLabel("c:", 112, 80, 20, 17)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1, "Valor de c")
$Label1 = GUICtrlCreateLabel("Resolver ecuaciones de 2º grado por Odraude", 4, 194, 290, 17, $ss_center)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Realizar = GUICtrlCreateLabel("Realizar", 8, 32, 77, 20)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor(-1, 0)
$Borrar_todo = GUICtrlCreateLabel("Borrar todo", 8, 64, 69, 33)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor(-1, 0)
$Acerca_de = GUICtrlCreateLabel("Acerca de", 8, 112, 69, 33)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor(-1, 0)
$Salir = GUICtrlCreateLabel("Salir", 8, 160, 45, 20)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor(-1, 0)
$Input4 = GUICtrlCreateInput("", 136, 136, 145, 21)
GUICtrlSetTip(-1, "Solución de x1")
$Input5 = GUICtrlCreateInput("", 136, 160, 145, 21)
GUICtrlSetTip(-1, "Solución de x2")
GUICtrlCreateLabel("x1:", 112, 136, 20, 17)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1, "Solución de x1")
GUICtrlCreateLabel("x2:", 112, 160, 20, 17)
GUICtrlSetFont(-1, 8, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetTip(-1, "Solución de x2")
$Label6 = GUICtrlCreateLabel("Soluciones", 168, 112, 75, 20)
GUICtrlSetFont(-1, 10, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$X_icon = GUICtrlCreateIcon("Shell32.dll", -132, 277, 4, 16, 16)
GUICtrlSetTip(-1, "Salir")
GUICtrlSetCursor(-1, 0)
$minimize_icon = GUICtrlCreateLabel("_", 257, -3, 16, 32)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xB00000)
GUICtrlSetTip(-1, "Minimizar")
GUICtrlSetCursor(-1, 0)
;$Mover = GUICtrlCreateLabel("", 0, 0, 252, 25)
$Mover = GUICtrlCreateLabel("", 0, 0, 298, 226)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
_WinAnimate($Form1, 0x00040010)
;Estado del formulario = Mostrar
GUISetState(@SW_SHOW)
;Comienzan las acciones de selección por caso
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
;Caso si el formulario se cierra, salir
Case $GUI_EVENT_CLOSE, $Salir, $X_icon
_WinAnimate($Form1, 0x00050010)
Exit
Case $minimize_icon
GUISetState(@SW_MINIMIZE, $Form1)
Case $Mover
DllCall("user32.dll", "int", "SendMessage", "hWnd", $Form1, "int", 0xA1, "int", 2, "int", 0)
Case $Realizar
If GUICtrlRead($Input1) = "" Then
_Mensaje("Error", "Primero introduzca el valor de a.")
ElseIf GUICtrlRead($Input2) = "" Then
_Mensaje("Error", "Primero introduzca el valor de b.")
ElseIf GUICtrlRead($Input3) = "" Then
_Mensaje("Error", "Primero introduzca el valor de c.")
ElseIf GUICtrlRead($Input2) * GUICtrlRead($Input2) - 4 * GUICtrlRead($Input1) * GUICtrlRead($Input3) < 0 Then
_Mensaje("Error", "La ecuación no tiene solución.")
Else
GUICtrlSetData($Input4, (-GUICtrlRead($Input2) + Sqrt(GUICtrlRead($Input2) * GUICtrlRead($Input2) - 4 * GUICtrlRead($Input1) * GUICtrlRead($Input3))) / 2 * GUICtrlRead($Input1))
GUICtrlSetData($Input5, (-GUICtrlRead($Input2) - Sqrt(GUICtrlRead($Input2) * GUICtrlRead($Input2) - 4 * GUICtrlRead($Input1) * GUICtrlRead($Input3))) / 2 * GUICtrlRead($Input1))
EndIf
Case $Borrar_todo
If GUICtrlRead($Input1) = "" And GUICtrlRead($Input2) = "" And GUICtrlRead($Input3) = "" And GUICtrlRead($Input4) = "" And GUICtrlRead($Input5) = "" Then
_Mensaje("Atención", "Las cajas se encuentran vacías.")
Else
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "")
GUICtrlSetData($Input4, "")
GUICtrlSetData($Input5, "")
EndIf
Case $Acerca_de
GUISetState(@SW_DISABLE, $Form1)
$Form3 = GUICreate("Resolver ecuaciones de 2º grado", 408, 160, -1, -1, $WS_POPUP)
GUISetBkColor(0x000000)
$Salir2 = GUICtrlCreateLabel("Salir", 181, 128, 45, 25, $ss_center)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetCursor(-1, 0)
$Label6 = GUICtrlCreateLabel("© Copyright 2009-2010. Todos los derechos reservados.", 54, 96, 299, 20, $ss_center)
GUICtrlSetFont(-1, 7, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label1 = GUICtrlCreateLabel("Nombre:", 8, 16, 67, 20)
GUICtrlSetFont(-1, 10, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("Autor:", 8, 40, 67, 20)
GUICtrlSetFont(-1, 10, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label3 = GUICtrlCreateLabel("Versión:", 8, 64, 67, 20)
GUICtrlSetFont(-1, 10, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label4 = GUICtrlCreateLabel("Programa para resolver ecuaciones de 2ª grado", 80, 18, 323, 20)
GUICtrlSetFont(-1, 9, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label5 = GUICtrlCreateLabel("Odraude", 80, 42, 67, 20)
GUICtrlSetFont(-1, 9, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label7 = GUICtrlCreateLabel("1.0", 80, 67, 43, 20)
GUICtrlSetFont(-1, 9, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Mover2 = GUICtrlCreateLabel("", 0, 0, 408, 160)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW, $Form3)
Do
$nMsg = GUIGetMsg()
If $Mover2 Then
DllCall("user32.dll", "int", "SendMessage", "hWnd", $Form3, "int", 0xA1, "int", 2, "int", 0)
EndIf
Until $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $Salir2
GUISetState(@SW_ENABLE, $Form1)
GUIDelete($Form3)
EndSwitch
WEnd
Func _Mensaje($titulo, $texto)
GUISetState(@SW_DISABLE, $Form1)
$Form2 = GUICreate($titulo, 255, 81, -1, -1, $WS_POPUP)
GUISetBkColor(0x000000)
$Salir1 = GUICtrlCreateLabel("Salir", 102, 48, 45, 25, $ss_center)
GUICtrlSetFont(-1, 12, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetCursor(-1, 0)
$Label6 = GUICtrlCreateLabel($texto, 6, 16, 243, 20, $ss_center)
GUICtrlSetFont(-1, 10, 800, 2, "Verdana")
GUICtrlSetColor(-1, 0xFFFFFF)
$Mover2 = GUICtrlCreateLabel("", 0, 0, 280, 139)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUISetState(@SW_SHOW, $Form2)
Do
$nMsg = GUIGetMsg()
If $Mover2 Then
DllCall("user32.dll", "int", "SendMessage", "hWnd", $Form2, "int", 0xA1, "int", 2, "int", 0)
EndIf
;if $nMsg = $Mover2 Then dllcall("user32.dll","int","SendMessage","hWnd", $Form1,"int",0xA1,"int", 2,"int", 0)
Until $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $Salir1
GUISetState(@SW_ENABLE, $Form1)
GUIDelete($Form2)
EndFunc ;==>_Mensaje
Func _WinAnimate($h_gui, $i_mode, $i_duration = 1000)
If @OSVersion = "WIN_XP" Or @OSVersion = "WIN_2000" Or @OSVersion = "WIN_VISTA" Then
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $h_gui, "int", $i_duration, "long", $i_mode)
Local $ai_gle = DllCall('kernel32.dll', 'int', 'GetLastError')
If $ai_gle[0] <> 0 Then
Return SetError(1, 0, 0)
EndIf
Return 1
Else
Return SetError(2, 0, 0)
EndIf
EndFunc ;==>_WinAnimate