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] Gui, Button I Problem Z Ponownym Uzyciem


kokosz

Rekomendowane odpowiedzi

Opublikowano

Witam,

 

Nie fruwałem zbyt czesto z GUI autoitowym więc mam male pytaine. Sytacja wyglada w ten sposob.... Mam gui w ktorym jest button. Po uruchomieniu programu lata sobię petla while jak widac ponizej.

 

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
GuiCTRLRead($Input1) ; szerokosc

GUICtrlSetData($Input2,PrzeliczDate($Input1))

Case $Button2
Case $Button3
Case $Button4
EndSwitch
WEnd

Func PrzeliczDate($datajul)

$datagreg = _JulianToDate($datajul)

Return $datagreg


EndFunc

 

Kiedy uruchamiam przycisk $Button1 wszystko dziala ok, jednak nie moge go uzyc ponownie. Czy ktos z Was może podrzucić "hinta" jak to zrobic ?

 

Pozdr :)

Opublikowano

Jako argument powinieneś podać chyba wartość Input1, a nie jego identyfikator? :P

Spróbuj takie coś:

 

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
	Exit
Case $Button1
	Przeliczdate()
Case $Button2
Case $Button3
Case $Button4
EndSwitch
WEnd

Func PrzeliczDate()
       $inp = GuiCTRLRead($Input1)
       $datagreg = _JulianToDate($inp)
       GUICtrlSetData($Input2, $datagreg)
       Return $datagreg
EndFunc

 

Jak nie działa to wyślij cały kod, bo może masz gdzie indziej błąd ;)

Opublikowano

k()
func k()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

Case $Button1
       GuiCTRLRead($Input1) ; szerokosc

       GUICtrlSetData($Input2,PrzeliczDate($Input1))
       k()
Case $Button2
Case $Button3
Case $Button4
EndSwitch
WEnd
endfunc

Func PrzeliczDate($datajul)

       $datagreg = _JulianToDate($datajul)

       Return $datagreg


EndFunc

tak jak napisał hfaufa, najlepiej kod podac

Opublikowano

dlatego piszemy że najlepiej by było podac cały kod wtedy można by było potestowac

tak myśle

może to przez funkcje return zbytnio nie wiem co ona oznacza bo niema tego w helpie lecz myślę że to powtarza $datagreg tworząc pętle przy czym nie da się nic zrobić

można by było te while dodac w funkcje tak jak zrobiłem wyżej i dodac do tego timera lub abdilregister dzieki któremu można robic pare funkcji na raz

tutaj przykład

#include <Timers.au3>

$hgui = GUICreate('')
Global $number = 0
global $number2 = 0
Global $id1 = _Timer_SetTimer($hgui, 10, '_msb')
_Timer_SetTimer($hgui, 10, '_tt')

Sleep(1111)


Func _msb($1, $2, $3, $4)
       $number += 1
       If $number >= 5 Then _Timer_KillTimer($hgui, $id1)
       MsgBox(0, 'adlibregister', 'adlibregister')
EndFunc

func _tt($1, $2, $3, $4)
       $number2 += 1
       If $number2 >= 5 Then _Timer_KillAllTimers($hgui)
       TrayTip("~by 4gre5510n","asdf",200)
EndFunc

Opublikowano

Wybaczcie. Zmeczony jestem... nie zauważyłem czeskiego błedu :D Dzięki raz jeszcze... skupiłem się w zupełnie innym miejscu. Wniosek z tego taki, aby nie siadać do kodu o tej godzinie, bo się wychodzi na idiotę ;)

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...