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

[Pytanie] CheckBox


Rekomendowane odpowiedzi

Opublikowano

Na sam początek obrazek:

 

183c8e0284c5c.jpg

 

Jak zrobić, aby po wybraniu pakietu "Max" wyświetla się Msgbox z odpowiedzią "Koszt 100zł", a "Mini" - "Koszt 50PLN".

 

 

Nie proszę o gotowy skrypt, a wyjaśnienie jak to zrobić.

Opublikowano

Teoria:

sprawdzasz czy kontrolka zmienia swoje wlasciwosci -> zaznaczona, niezaznaczona..

 

Praktyka:

Switch GUIGetMsg() ; zwykly switch jak przy kazdej kontrolce || -3 to X w gui..
Case $max ; zmiana zmiennej -> wywolanie msgbox'a
MsgBox(0, "", "Koszt 100zl")

Case $min
MsgBox(0, "", "Koszt 50zl")

EndSwitch

 

@offtop - mpc sie pierdoli -.-"

Opublikowano

Jak uruchamiam program to od razu wyskakuje MsgBox "koszt 100PLN".

 

 

Kod:

 

$Form1 = GUICreate("Form1", 365, 195, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("Max", 40, 72, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("Mini", 216, 72, 97, 17)
$Label1 = GUICtrlCreateLabel("Wybierz pakiet.", 128, 16, 77, 17)
$Button1 = GUICtrlCreateButton("Zobacz cene", 112, 128, 75, 25)
GUISetState(@SW_SHOW)

$Max = "To będzie kosztować 100PLN"
$Mini = "To będzie kosztować 50PLN"
While 1
$nMsg = GUIGetMsg()
Switch GUIGetMsg()
Case $Max
MsgBox(0, "cena", "Koszt 100PLN")
Case $Mini
MsgBox(0, "cena", "Koszt 50PLN")
EndSwitch
WEnd

Weteran
Opublikowano

Uzyj guictrlread, aby sprawdzic, czy jest kontrolka jest zaznaczona.

 

If GUICtrlRead($min) = $GUI_CHECKED Then
msgbox(0,"","min")
endif
If GUICtrlRead($max) = $GUI_CHECKED Then
msgbox(0,"","max")
endif

1329036830-U154499.png
Opublikowano

Zrobiłem teraz w ten sposób, ale nie mam pojęcia jak to dodać do buttona.

 

$Form1 = GUICreate("Kupno", 336, 110, 192, 124)
$Checkbox1 = GUICtrlCreateCheckbox("100Pkt", 40, 32, 97, 17)
$Checkbox2 = GUICtrlCreateCheckbox("75Pkt", 216, 32, 97, 17)
$Button1 = GUICtrlCreateButton("Sprawdz", 128, 64, 75, 25)
GUISetState(@SW_SHOW)

While 1
$msg = GUIGetMsg()
If $msg = -3 Then Exit
If $msg = $Checkbox1 Then checkbox1()
If $msg = $Checkbox2 Then checkbox2()
WEnd
Func checkbox1()
MsgBox(0,"","Koszt 65 zł")
EndFunc
Func checkbox2()
MsgBox(0,"","Koszt 50 zł")
EndFunc

Weteran
Opublikowano
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
$Form1 = GUICreate("Kupno", 336, 110, 192, 124)
$box = GUICtrlCreateCheckbox("100Pkt", 40, 32, 97, 17)
$box2 = GUICtrlCreateCheckbox("75Pkt", 216, 32, 97, 17)
$Button1 = GUICtrlCreateButton("Sprawdz", 128, 64, 75, 25)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
 Case $box
MsgBox(0,"","Koszt 65zł")
 Case $box2
MsgBox(0,"","Koszt 50zł")
 Case $Button1
If GUICtrlRead($box) = $GUI_CHECKED Then
MsgBox(0,"","Koszt 65zł")
EndIf
If GUICtrlRead($box2) = $GUI_CHECKED Then
MsgBox(0,"","Koszt 50zł")
EndIf
 Case $GUI_EVENT_CLOSE
  Exit
EndSwitch
WEnd

1329036830-U154499.png
Opublikowano

Można też tak, przy użyciu OnEvent:

#include <GUIConstatnsEx.au3>
Opt ("GuiOnEventMode", 1)
$Form1 = GUICreate("Kupno", 336, 110, 192, 124)
$box = GUICtrlCreateCheckbox("100Pkt", 40, 32, 97, 17)
$box2 = GUICtrlCreateCheckbox("75Pkt", 216, 32, 97, 17)
$Button1 = GUICtrlCreateButton("Sprawdz", 128, 64, 75, 25)
GUISetOnEvent ($GUI_EVENT_CLOSE, "koniec") ;przypisanie funkcji 'koniec' do 'x' na belce tytułowej GUI
GUICtrlSetOnEvent ($Button1, "sprawdz") ;przypisanie funkcji 'sprawdz' do buttona
GUISetState(@SW_SHOW)

Func koniec()
Exit
EndFunc

Func sprawdz()
$state1 = GUICtrlRead($box) ;odczytanie z $box
$state2 = GUICtrlRead($box2) ;odczytanie z $box2
If $state1 = $GUI_CHECKED Then ;sprawdzenie czy $box jest zaznaczone
MsgBox (0, "", "100Pkt")
EndIf
If $state2 = $GUI_CHECKED Then ;sprawdzenie czy $box2 jest zaznaczone
MsgBox (0, "", "75Pkt")
EndIf
EndFunc

While 1
Sleep (100)
WEnd

 

Pisałem z pamięci, więc sorry za brak tabów.

A teraz zapamiętaj:

- Wartość z checkboxa odczytujesz przez GUICtrlRead

- Wartość z checkboxa może być równa zmiennych $GUI_CHECKED (jeśli zaznaczony) lub $GUI_UNCHECKED (jeśli niezaznaczone), które są w bibliotece GUIConstantsEx.au3

 

Tyle w tym temacie, po więcej info zapraszam na GG.

846331404756772371599.jpeg

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...