Что нового

[Элементы GUI] Генератор случайных чисел в одном окне.

ivsatel

Продвинутый
Сообщения
319
Репутация
84
Версия AutoIt: 3.3.8.1

Описание:
Скрипт генерации случайных чисел по нажатию на клавишу. Что-бы число отображалось в окне без вызова месседжбоксов и других окон. Нужно что-бы генерируемое число было всегда в середине окна не зависимо от его размера. Еще хотелось бы что-бы возможно было запускать генерацию нажатием на Enter, а не только мышкой.

Примечания:
Получилось.

Код:
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $msg
Local $random = ''

Func _G()
		$random  = Random(1, 4000, 1)
EndFunc

    $hGui = GUICreate("Генератор произвольных чисел", 800, 600, -1, -1, $WS_SYSMENU, $WS_EX_TOPMOST) 
	$Label = GUICtrlCreateLabel($random, 400, 300)
	$Button = GUICtrlCreateButton("Генерировать", 10, 500, 780)
	GUICtrlSetState($Button, $GUI_FOCUS)
    GUISetState(@SW_SHOW)

While 1

	Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button
			GUICtrlDelete($Label)
			_G()
			$Label = GUICtrlCreateLabel($random, 1, 80, 790, 350, $SS_CENTER)
			GUICtrlSetFont($Label, 250, 400, 1)
	EndSwitch

WEnd
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
так?
Код:
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

$hGui = GUICreate("Генератор произвольных чисел", 800, 600, -1, -1, -1, $WS_EX_TOPMOST)
$iLabel = GUICtrlCreateLabel('', 0, 80, 800, 350, $SS_CENTER + $SS_CENTERIMAGE)
GUICtrlSetFont(-1, 250)
$iDummy = GUICtrlCreateDummy()
; $iButton = GUICtrlCreateButton("Генерировать", 10, 500, 780)
; GUICtrlSetState(-1, $GUI_FOCUS)
Local $aAccelKeys[1][2] = [['{Enter}', $iDummy]]
GUISetAccelerators($aAccelKeys)
GUISetState(@SW_SHOW)

While 1
	Switch GUIGetMsg()
		Case $iDummy
			GUICtrlSetData($iLabel, Random(1, 4000, 1))
		; Case $iButton
			; GUICtrlSetData($iLabel, Random(1, 4000, 1))
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 
Автор
I

ivsatel

Продвинутый
Сообщения
319
Репутация
84
AZJIO
Пока вот такой мой последний вариант в котором попытался реализовать расстановку элементов относительно разных разрешений экрана:
Код:
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Global $msg
Global $Visota = @DesktopHeight
Global $Shiryna = @DesktopWidth
Local $random = ''

Func _G()
		$random  = Random(1, 4000, 1)
EndFunc

    $hGui = GUICreate("Генератор произвольных чисел", $Shiryna, $Visota, -1, -1, $WS_MAXIMIZE + $WS_POPUP, $WS_EX_TOPMOST)
	GUISetBkColor(0xFFFFFF)
	GUICtrlSetDefBkColor(0xFFFFFF, $hGui)
	$Label = GUICtrlCreateLabel($random, -1, -1)
	$Button = GUICtrlCreateButton("Генерировать", 5, $Visota-($Visota/10), $Shiryna-($Shiryna/100))
	GUICtrlSetState($Button, $GUI_FOCUS)
    GUISetState(@SW_SHOW)

While 1

	Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Button
			GUICtrlDelete($Label)
			_G()
			$Label = GUICtrlCreateLabel($random, 5, ($Visota/2)/3, $Shiryna, ($Shiryna/2), $SS_CENTER + $SS_CENTERIMAGE)
			GUICtrlSetFont($Label, $Visota/2.5, 700)
			GUICtrlSetColor($Label, 0xff0000)

	EndSwitch

WEnd
 
Верх