Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[problem] odczyt z kontrolek


Rekomendowane odpowiedzi

Opublikowano

Chcę zrobić coś takiego, że po zaznaczeniu odpowiedniego checkboxa i wciśnięciu buttona pojawia się odpowiedni komunikat.

(Jest możliwość zrobienia tego poza pętlą "utrzymującą" gui <while 1 cośtam $GUI_EVENT_CLOSE Exit>?)

While 1
 
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        case  $button AND ;;CO TU WPISAĆ?

    EndSwitch
WEnd
 

Opublikowano

to zrób button w nim odwołanie do funkcji a w funkcji wpisz jeśli (if) zaznaczony jest ten wysyła komunikat.

1387536187-U112334.png

Jeśli Ci pomogłem mógłbyś wynagrodzić lajkiem :)

Opublikowano

"(Jest możliwość zrobienia tego poza pętlą "utrzymującą" gui <while 1 cośtam $GUI_EVENT_CLOSE Exit>?)"

Tak : Opt("GuiOnEventMode", 1)

GuiSetOnEvent($button1, "funkcja")

$lol = GuiCtrlRead($Checkbox1)

If $lol = warunek Then

intrukcje

EndiF

OndteAw.png
Opublikowano


Opt("GuiOnEventMode", 1)

GuiSetOnEvent($button1, "funkcja")

If GuiCtrlRead($Checkbox1)=$GUI_CHECKED Then

MsgBox(064, "", "CheckBox jest zaznaczony :)")

EndiF

4758463064.png

 

Opublikowano

ok, dzięki za pomoc
a się jeszcze spytam
1 to jest zaznaczony, a jak jest odznaczony?

$lol = GuiCtrlRead($Checkbox1)
If $lol = 1 (jeśli jest zaznaczony)

Opublikowano

Zaraz zaraz, checkbox czy radiobutton ? bo jak radiobutton to ma być $Checked czy coś w ten desen zaraz ci napisze jak sie dowiem co to jest

OndteAw.png
Opublikowano

checkbox,

coś takiego

If $nMSG = $button AND $lol=1 Then

msgbox(0,"","")
EndIf
działa tylko jak zaznaczę checkboxa
/edit:
Jak zrobić, żeby po wpisaniu w Inputa liczby z poza przedziału zmieniała się automatycznie na skraj przedziału?
tzn, chcę, żeby można było wpisywać liczby od 1 do 10, a po wpisaniu 11 automatycznie przeskoczy na 10
Nie mam nawet pomysłu jak to zrobić. Chciałem wykorzystać @error, ale to nie zmieni automatycznie liczby.
Opublikowano

For $x = 1 To $z = 10

Instrukcje

Next

Dajesz tak i tylko wypisuje ci z przedziału 1-10

A jak nie tak to tak

If $liczba > 10 Then

GuiCtrlSetData($checkbox, "10")

OndteAw.png
Opublikowano

Mam pytanko, odnośnie właśnie odczytywania z kontrolek. W ramach nauki chciałem zrobić program, który umożliwia kombinację klawiszy na inną. Problem pojawia się przy zmiennej $input, która nie chce przyjmować wartości. Na razie ustawiłem, że po wciśnięciu przycisku "Wyjdź" wyskakuje komunikat z zawartością tej właśnie zmiennej. Powiecie, co jest nie tak?

#include <ButtonConstants.au3>

#include <ComboConstants.au3>

#include <EditConstants.au3>

#include <GUIConstantsEx.au3>

#include <StaticConstants.au3>

#include <WindowsConstants.au3>

#include <Misc.au3>

 

;================================

Opt('GUIOnEventMode', 1)

;================================

 

#Region ### START Koda GUI section ### Form=C:\Program Files (x86)\AutoIt3\SciTE\SciTEConfig\Form1_1.kxf

$hGUI = GUICreate("Konwersja klawiszy", 359, 243, 194, 129)

$IN = GUICtrlCreateGroup("Input", 8, 16, 153, 105)

$Label8 = GUICtrlCreateLabel("or", 114, 61, 26, 33)

GUICtrlSetFont(-1, 17, 400, 0, "MS Sans Serif")

$inctrl = GUICtrlCreateCheckbox("CTRL", 25, 43, 49, 17)

$inalt = GUICtrlCreateCheckbox("ALT", 25, 67, 49, 17)

$inshift = GUICtrlCreateCheckbox("SHIFT", 25, 91, 49, 17)

$inznak = GUICtrlCreateInput("", 105, 43, 41, 21)

$Label9 = GUICtrlCreateLabel("+", 77, 59, 23, 41)

GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")

$inF = GUICtrlCreateCombo("F1", 105, 89, 41, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))

GUICtrlSetData(-1, "F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|None")

GUICtrlCreateGroup("", -99, -99, 1, 1)

$Out = GUICtrlCreateGroup("Output", 199, 16, 153, 105)

$Label6 = GUICtrlCreateLabel("or", 305, 61, 26, 33)

GUICtrlSetFont(-1, 17, 400, 0, "MS Sans Serif")

$outctrl = GUICtrlCreateCheckbox("CTRL", 216, 43, 49, 17)

$outalt = GUICtrlCreateCheckbox("ALT", 216, 67, 49, 17)

$outshift = GUICtrlCreateCheckbox("SHIFT", 216, 91, 49, 17)

$outznak = GUICtrlCreateInput("", 296, 43, 41, 21)

$Label7 = GUICtrlCreateLabel("+", 268, 59, 23, 41)

GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif")

$outF = GUICtrlCreateCombo("F1", 296, 89, 41, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))

GUICtrlSetData(-1, "F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|None")

GUICtrlCreateGroup("", -99, -99, 1, 1)

$enGroup = GUICtrlCreateGroup("", 9, 136, 345, 105)

$Label1 = GUICtrlCreateLabel("Program zamienia kombinację", 15, 146, 191, 17)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$Label2 = GUICtrlCreateLabel("klawiszy. Skrypt będzie", 199, 147, 191, 17)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$Label3 = GUICtrlCreateLabel("działał w tle dopóki nie zostanie", 15, 163, 191, 17)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$Label4 = GUICtrlCreateLabel("zamknięty.", 205, 163, 135, 17)

GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")

$END = GUICtrlCreateButton("Wyjdź", 119, 179, 155, 57)

GUICtrlSetFont(-1, 22, 800, 0, "Times New Roman")

GUICtrlCreateGroup("", -99, -99, 1, 1)

GUISetState(@SW_SHOW)

#EndRegion ### END Koda GUI section ###

 

GUISetState()

 

$hDLL = DllOpen("user32.dll") ;;; biblioteki!!

 

;================================

 

;================================

 

GuiSetOnEvent(-3, "wyjscie2", $hGUI)

GUICtrlSetOnEvent($end, "wyjscie")

 

#region ==========HOTKEYS========

 

$_inctrl=GUICtrlRead($inctrl)

$_inalt=GUICtrlRead($inalt)

$_inshift=GUICtrlRead($inshift)

$_inF=GUICtrlRead($inF)

 

$_outctrl=GUICtrlRead($outctrl)

$_outalt=GUICtrlRead($outalt)

$_outshift=GUICtrlRead($outshift)

$_outF=GUICtrlRead($outF)

 

 

$input = ""

 

Select

case $_inalt=1

$input &= "{LALT}"

ContinueCase

case $_inctrl=1

$input &= "{LCTRL}"

ContinueCase

EndSelect

 

 

#endregion========HOTKEYS========

 

 

while 1

 

literki ()

literki2 ()

 

sleep(100)

WEnd

 

 

#region ==========FUNCKJE========

 

 

func wyjscie ()

MsgBox(0,"",$input)

 

EndFunc

 

 

func wyjscie2 ()

exit

EndFunc

 

 

func literki ()

$_inznak = GUICtrlRead($inznak)

If StringLen($_inznak)>1 Then

MsgBox(16,"Błąd", "Tylko jeden klawisz")

GUICtrlSetData($inznak,StringLeft($_inznak,1))

EndIf

EndFunc

 

func literki2 ()

$_outznak = GUICtrlRead($outznak)

If StringLen($_outznak)>1 Then

MsgBox(16,"Błąd", "Tylko jeden klawisz")

GUICtrlSetData($outznak,StringLeft($_outznak,1))

EndIf

EndFunc

 

#endregion =======FUNCKJE========

 

 

 

 

 

Opublikowano

Ogólnie to ja nie ogarniam co Ty chcesz zrobić, ale chyba wiem w czym masz błąd. Przy samym włączaniu programu zapisuje on to co jest w inputach do zmiennej, a powinien to robić dynamicznie lub po kliknięciu jakiegoś przycisku.

Jeśli chcesz to robić dynamicznie, to użyj adlibregister:

 

AdlibRegister("funkcja", 500);AdlibRegister(nazwa funkcji do wykonania, czas w milisekundach)
Func funkcja()
   $123 = GUICtrlRead($kontrolka)
   $321 = GUICtrlRead($aklortnok)
EndFunc

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...