Wozu sollte man auch das Scrollrad Systemweit binden?
Beiträge von Prajoss
-
-
Ich würde sagen Progandy hat einfach sinnfrei auf seiner Tastatur getippt oder seine Katze ist drübergelaufen
und rausgekommen ist ein Beitrag in deinem Thread...Du sollst sein Script ausführen, so wie ich das sehe soll das Script schauen ob du Encoder hast.
Gruß
Prajoss
-
also ich habs nicht ganz so kompliziert gelöst oO
Spoiler anzeigen
[autoit]Global Const $WM_MOUSEWHEEL = 0x020A
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUIRegisterMsg($WM_SIZE, "WM_SIZE")
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
GUIRegisterMsg($WM_MOUSEWHEEL, "_Mausrad")Func _Mausrad($hWnd, $Msg, $wParam)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#forceref $Msg, $wParam
If $wParam == "0x00780000" Then _Bild_rauf()
If $wParam == "0xFF880000" Then _Bild_runter()
EndFunc
;~ Func _Bild_runter()
;~
;~ for $i = 0 To 4 Step 1
;~ WM_VSCROLL($sheet, 0x0, 0x00000001, 0) ;1 mal kurz nach oben Scrollen - selber Effekt wie auf den Pfeil klicken
;~ Next
;~
;~ EndFunc;~ Func _Bild_rauf()
[/autoit]
;~
;~ for $i = 0 To 4 Step 1
;~ WM_VSCROLL($sheet, 0x0, 0x00000000, 0) ;1 mal kurz nach unten Scrollen - selber Effekt wie auf den Pfeil klicken
;~ Next
;~
;~ EndFuncGruß
Prajoss
PS: VM_VSCROLL, VM_SIZE müsst ihr irgendwo noch deklarieren, ich häng se mal:
Spoiler anzeigen
[autoit]Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $Msg, $wParam, $lParam
; MsgBox(0, "tt", $wParam)
Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
Local $index = -1, $yChar, $yPos
Local $Min, $Max, $Page, $Pos, $TrackPosFor $x = 0 To UBound($aSB_WindowInfo) - 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
If $aSB_WindowInfo[$x][0] = $hWnd Then
$index = $x
$yChar = $aSB_WindowInfo[$index][3]
ExitLoop
EndIf
Next
If $index = -1 Then Return 0; Get all the vertial scroll bar information
[/autoit] [autoit][/autoit] [autoit]
Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
$Min = DllStructGetData($tSCROLLINFO, "nMin")
$Max = DllStructGetData($tSCROLLINFO, "nMax")
$Page = DllStructGetData($tSCROLLINFO, "nPage")
; Save the position for comparison later on
$yPos = DllStructGetData($tSCROLLINFO, "nPos")
$Pos = $yPos
$TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")Switch $nScrollCode
[/autoit] [autoit][/autoit] [autoit]
Case $SB_TOP ; user clicked the HOME keyboard key
DllStructSetData($tSCROLLINFO, "nPos", $Min)Case $SB_BOTTOM ; user clicked the END keyboard key
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Max)Case $SB_LINEUP ; user clicked the top arrow
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos - 1)Case $SB_LINEDOWN ; user clicked the bottom arrow
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + 1)Case $SB_PAGEUP ; user clicked the scroll bar shaft above the scroll box
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page)Case $SB_PAGEDOWN ; user clicked the scroll bar shaft below the scroll box
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page)Case $SB_THUMBTRACK ; user dragged the scroll box
[/autoit] [autoit][/autoit] [autoit]
DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
EndSwitch
;~ // Set the position and then retrieve it. Due to adjustments
;~ // by Windows it may not be the same as the value set.DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
[/autoit] [autoit][/autoit] [autoit]
_GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
_GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
;// If the position has changed, scroll the window and update it
$Pos = DllStructGetData($tSCROLLINFO, "nPos")If ($Pos <> $yPos) Then
[/autoit] [autoit][/autoit] [autoit]
_GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))
$yPos = $Pos
EndIfReturn $GUI_RUNDEFMSG
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>WM_VSCROLL
[/autoit] [autoit][/autoit] [autoit]Func WM_SIZE($hWnd, $Msg, $wParam, $lParam)
[/autoit] [autoit][/autoit] [autoit]
#forceref $Msg, $wParam
Local $index = -1, $yChar, $xChar, $xClientMax, $xClient, $yClient, $ivMax
For $x = 0 To UBound($aSB_WindowInfo) - 1
If $aSB_WindowInfo[$x][0] = $hWnd Then
$index = $x
$xClientMax = $aSB_WindowInfo[$index][1]
$xChar = $aSB_WindowInfo[$index][2]
$yChar = $aSB_WindowInfo[$index][3]
$ivMax = $aSB_WindowInfo[$index][7]
ExitLoop
EndIf
Next
If $index = -1 Then Return 0Local $tSCROLLINFO = DllStructCreate($tagSCROLLINFO)
[/autoit] [autoit][/autoit] [autoit]
; Retrieve the dimensions of the client area.
$xClient = BitAND($lParam, 0x0000FFFF)
$yClient = BitShift($lParam, 16)
$aSB_WindowInfo[$index][4] = $xClient
$aSB_WindowInfo[$index][5] = $yClient
; Set the vertical scrolling range and page size
DllStructSetData($tSCROLLINFO, "fMask", BitOR($SIF_RANGE, $SIF_PAGE))
DllStructSetData($tSCROLLINFO, "nMin", 0)
DllStructSetData($tSCROLLINFO, "nMax", $ivMax)
DllStructSetData($tSCROLLINFO, "nPage", $yClient / $yChar)
_GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
; Set the horizontal scrolling range and page size
DllStructSetData($tSCROLLINFO, "fMask", BitOR($SIF_RANGE, $SIF_PAGE))
DllStructSetData($tSCROLLINFO, "nMin", 0)
DllStructSetData($tSCROLLINFO, "nMax", 2 + $xClientMax / $xChar)
DllStructSetData($tSCROLLINFO, "nPage", $xClient / $xChar)
_GUIScrollBars_SetScrollInfo($hWnd, $SB_HORZ, $tSCROLLINFO)Return $GUI_RUNDEFMSG
[/autoit]
EndFunc ;==>WM_SIZEEdit: die VM_SIZE, VM_VSCROLL braucht man natürlich nur wenn man das Mausrad nutzten will um das GUI zu scrollen, sonst sind sie unnötig.
-
Hey,
sieht ja ganz ok aus aber ich weiß nich wie du den Schwierigkeitsgrad einstellst, also wenn ich auf voll stelle seh ich den Ball nich mehr, das dauert 0,5 sek und ich hab verloren *g* liegt vllt an der CPU :-/
Und ein Bug ist wohl noch da, der Ball fliegt ab und zu durch die obere Kante.
Gruß
Prajoss
-
Hi,
wenns mit Auto IT geschrieben ist, kannst ja versuchen die Exe wieder ins .au3 umzusetzten, dazu hast du
in deinem AutoIT Ordner unter Extras ein nettes Tool "Exe2Aut.exe"Kannst es ja mal testen
Gruß
Prajoss
-
Habs mit den Radiobuttsons hinbekommen, klappt super
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GUIConstantsEx.au3>
#Include <GuiTab.au3>
#include <GuiButton.au3>
#Include <File.au3>
#include <ButtonConstants.au3>Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Opt('TrayIconDebug', 1)Global Const $ws_left = (@DesktopWidth / 3 - 250) / 2
[/autoit] [autoit][/autoit] [autoit]
Global Const $ws_left_2 = ((@DesktopWidth / 3 - 250) / 2) + (@DesktopWidth / 3)
Global Const $ws_left_3 = ((@DesktopWidth / 3 - 250) / 2) + (@DesktopWidth / 3 * 2)Global $tabs[10], $t = 0, $p, $t_aktuell
[/autoit] [autoit][/autoit] [autoit]
Global $KK[10], $GE[10], $WS[10], $CH[10], $MP[10], $EB[10], $WA[10], $IN[10], $GS[10]
Global $KK_P[10][10], $GE_P[10][10], $WS_P[10][10], $CH_P[10][10], $MP_P[10][10], $EB_P[10][10], $WA_P[10][10], $IN_P[10][10] ,$GS_P[10][10]
Global $Radios[1000][3], $indexi = 0$sheet = GUICreate("Vampire Charaktere", @Desktopwidth, @Desktopheight * 0.95, 0, 0, BitOr($WS_MINIMIZEBOX, $WS_SYSMENU, $WS_MAXIMIZEBOX, $WS_MAXIMIZE))
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")$menue = GUICtrlCreateMenu("&Datei")
[/autoit] [autoit][/autoit] [autoit]$neu = GUICtrlCreateMenuItem("&Neu", $menue)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1, "Neu")$oeffnen = GUICtrlCreateMenuItem("&Öffnen", $menue)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1, "Oeffnen")$speichern = GUICtrlCreateMenuItem("&Speichern", $menue)
[/autoit] [autoit][/autoit] [autoit]
;GUICtrlSetOnEvent(-1, "Speichern")
GUICtrlCreateMenuItem("", $menue)$beenden = GUICtrlCreateMenuItem("&Beenden", $menue)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent(-1, "Beenden")$tab = GUICtrlCreateTab( 2, 2, @Desktopwidth - 4, @DesktopHeight - 4)
[/autoit] [autoit][/autoit] [autoit]If FileExists(@MyDocumentsDir & "\VampChars\") == 0 Then DirCreate(@MyDocumentsDir & "\VampChars\")
[/autoit] [autoit][/autoit] [autoit]GUISetState()
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit] [autoit][/autoit] [autoit]Sleep(10)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Neu()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$temp = Random( 1000, 9999, 1) & ".ini"
_FileCreate(@MyDocumentsDir & "\VampChars\" & $temp)
GUICtrlCreateTabItem($temp)
Blatt_erstellen()
GUICtrlCreateTabItem("")
$file = $temp
EndFuncFunc Oeffnen()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$file = FileOpenDialog("Charakterblatt öffnen", @MyDocumentsDir & "\VampChars\", "Charakterblatt (*.ini)", 1 + 2)
Return
EndFuncFunc Beenden()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
;~ Funktion: Blatt eventuell speichern()
Exit
EndFuncFunc Blatt_erstellen()
[/autoit] [autoit][/autoit] [autoit]
Local $length = 90, $left = ($ws_left + $length), $left_2 = ($ws_left_2 + $length), $left_3 = ($ws_left_3 + $length) + 10
Local $abstand$KK[$t] = GUICtrlCreateLabel("Körperkraft", $ws_left, 400, $length, 20)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 10)
For $p = 0 To 9 Step 1
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$KK_P[$t][$p] = GUICtrlCreateRadio("", $left + ($abstand) , 400 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $KK_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next$GE[$t] = GUICtrlCreateLabel("Geschick", $ws_left, 425, $length, 20)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$GE_P[$t][$p] = GUICtrlCreateRadio("", $left + ($abstand) , 425 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $GE_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next$WS[$t] = GUICtrlCreateLabel("Widerstand", $ws_left, 450, $length, 20)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$WS_P[$t][$p] = GUICtrlCreateRadio("", $left + ($abstand) , 450 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $WS_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next$CH[$t] = GUICtrlCreateLabel("Charisma", $ws_left_2, 400, $length, 20)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$CH_P[$t][$p] = GUICtrlCreateRadio("", $left_2 + ($abstand) , 400 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $CH_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$MP[$t] = GUICtrlCreateLabel("Manipulation", $ws_left_2, 425, $length, 20)
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$MP_P[$t][$p] = GUICtrlCreateRadio("", $left_2 + ($abstand) , 425 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $MP_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$EB[$t] = GUICtrlCreateLabel("Ersch.Bild", $ws_left_2, 450, $length, 20)
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$EB_P[$t][$p] = GUICtrlCreateRadio("", $left_2 + ($abstand) , 450 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $EB_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$WA[$t] = GUICtrlCreateLabel("Wahrnehmung", $ws_left_3, 400, $length, 20)
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$WA_P[$t][$p] = GUICtrlCreateRadio("", $left_3 + ($abstand) , 400 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $WA_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$IN[$t] = GUICtrlCreateLabel("Intelligenz", $ws_left_3, 425, $length, 20)
GUICtrlSetFont(-1, 10)For $p = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$IN_P[$t][$p] = GUICtrlCreateRadio("", $left_3 + ($abstand) , 425 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $IN_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$GS[$t] = GUICtrlCreateLabel("Geistesschärfe", $ws_left_3, 450, $length, 20)
GUICtrlSetFont(-1, 10)
For $p = 0 To 9 Step 1
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$GS_P[$t][$p] = GUICtrlCreateRadio("", $left_3 + ($abstand) , 450 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = $GS_P[$t][$p]
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
Next
$t = $t + 1
EndFuncFunc Abstand_bestimmen($Index)
[/autoit] [autoit][/autoit] [autoit]
If $Index >= 5 Then
Return $Index * 15 + 5
Else
Return $Index * 15
EndIf
EndFuncFunc _Exit()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc Radio()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To ($indexi - 1) Step 1
If $Radios[$i][0] == @GUI_CtrlId Then
Radios_check($i, $Radios[$i][2])
Radios_uncheck($i, $Radios[$i][2])
Return
EndIf
NextEndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Radios_check($Ctrl_ID, $index_2)
[/autoit] [autoit][/autoit] [autoit]
While $index_2 >= 0
GUICtrlSetState($Radios[$Ctrl_ID][0], $GUI_CHECKED)
$Ctrl_ID = $Ctrl_ID - 1
$index_2 = $index_2 - 1
WEndEndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func Radios_uncheck($Ctrl_ID, $index_2)
[/autoit]
While $index_2 + 1 < 10
GUICtrlSetState($Radios[$Ctrl_ID + 1][0], $GUI_UNCHECKED)
$Ctrl_ID = $Ctrl_ID + 1
$index_2 = $index_2 + 1
WEnd
EndFunchab n bischen gebraucht für den Algorythmus aber es funzt
Gruß
Prajoss
-
Hey,
das mit dem anwählen ist ja kein Ding, hab jeden in ne eigene Gruppe gepackt und gut ist
ZitatIm moment häng ich an der Stelle fest, dass ich mehrere Radio-buttons anlege mit einer For-Schleife:
Spoiler anzeigen
[autoit]For $p = 0 To 9 Step 1
[/autoit]
$abstand = Abstand_bestimmen($p)
GUICtrlCreateGroup("", 1800, 0, 0, 0, -1)
$KK_P[$t][$p] = GUICtrlCreateRadio("", $left + ($abstand) , 40 , 15, 20)
GUICtrlSetOnEvent(-1, "Radio")
$Radios[$indexi][0] = @GUI_CtrlID
$Radios[$indexi][1] = $t
$Radios[$indexi][2] = $p
$indexi = $indexi + 1
GUICtrlCreateGroup("", -99, -99, 1, 1)
NextIch habe schon fast das erreicht was ich will, nur das problem ist dass alle $KK_P[X][Y] Raido-buttons alle ein und das selbe Ctrl-ID und Handle haben und das ist gerade mein Problem :-/
Ich will jedes einzelne Handle ansprechen können, aber die einzigen Werte die ich wirklich dazu kenne ist die Ctrl-ID aber wenn die immer gleich bleibt ist das schlecht
Edit: OK hab grad den Fehler gefunden (das war ein Geistesblitz)
Gruß
Prajoss
PS: Für Labels mit Icons oder sonstiges würde das Problem ebenfalls bestehen, außerdem hatte ich mit Label-Icons noch andere Probleme^^
-
deswegen hab ich ja bei mir immer ein Flag gesetzt damit er eben nicht dauernd die Funktion aufruft, sondern nur wenn sich was geändert hat im Edit
-
Hey,
danke erstmal.
Also ich möchte keinen Slider erstellen, das ganze soll so aussehen (wenns mal fertig ist) --> Siehe Dateianhang
Deswegen möchte ich das mit den Radiobuttons lösen.
Mein Problem jetzt noch ist, dass ich nich genau abfragen kann wenn ein Radiobutton geklickt wurde..
Leider geht das bei einem Radiobutton nicht so ganz.
Ich möchte sobald ich auf einen der vielen Buttons kriege ein Event auslösen und dabei gleichzeitig die Control-ID des buttons in eine Variable speichern, ist dies möglich?wenn ja, bitte nur die Befehle posten, keine komplettlösungen
Danke und Grüße
Prajoss
Edit: Hab jetzt GuiCtrlSetOnEvent() entdeckt, leider kann ich bei der Funktion welche ich bestimme keine Parameter mitübergeben...
- ok Suchfunktion hat sogar mal geholfen, werd noch ein wenig dran sitzen -
Hey,
vom Prinzip her funktioniert das so:
Spoiler anzeigen
[autoit]$flag = 0
[/autoit] [autoit][/autoit] [autoit]$eingabe = GUICtrlCreateInput()
[/autoit] [autoit][/autoit] [autoit]While
[/autoit]
$msg = GUIGetMsg()
$eingabe_alt = GUICtrlRead($eingabe)
If $flag == 1 Then
Funktion_zum_Berechnen()
$flag = 0
EndIf
If $eingabe_alt <> GUICtrlRead($eingabe) Then
$flag = 1
EndIf
WEndGruß
Prajoss
-
Hai allerseits,
ich schreibe gerade ein Programm mit dem man ein Charakterblatt für ein bestimmtes Pen&Paper Rollenspiel erstellen kann (ist für mich damit ich meine ganzen NPCs und sonstigen Charas einfacher verwalten kann - ich mag kein Papierchaos :D).
Im moment sieht es folgendermaßen aus, ich erstelle ein Label, direkt gefolgt von 10 einzelnen Radiobuttons (jeder ne eigene Gruppe):
LABEL OOOOO OOOOO
Jetzt möchte ich folgendes erreichen, wenn ich auf einen dieser Radio Buttons klicke, dann sollen alle Buttons die links davon stehen markiert, und alle Buttons die rechts "entmarkiert".
Spoiler anzeigen
[autoit]veraltet
[/autoit]**Aktuelles Problem steht weiter im Thread**
Gruß
Prajoss
PS: ihr braucht mir keine fertige Lösung hinschreiben (falls es eine gibt) ein paar Befehle sollten reichen, ich grüble selbst gerne
-
Alles Gute und Danke für deine Hilfe
Gruß
Prajoss
-
Ist es nicht, die Funktion Run() ist nunmal nicht identisch mit der Kommandozeile!
Deshalb kannst du damit auch nicht wirklich eine Batchprogrammierung machen.
Du könntest wie gesagt entweder die cmd starten und dann deinen Befehl per ControlSend() einfügen und ausführen oder
du lässt eine *.bat Datei per Script mit deinem Inhalt erstellen, ausführen und anschließend löschen.
Gruß
Prajoss
-
Ein Label als Button?
Erstell doch einen normalen Button oder wo genau ist das Problem?
Gruß Prajoss
-
Das Problem hier ist einfach dass Run != Kommandozeile ist!!
Du kannst gerne die CMD über Run() starten und dann per ControlSend(...) ja deinen Befehl übertragen
Gruß
Prajoss
-
Fangen wir mal damit an dass das GUI das du mit den Inputboxen erstellst variabel sein muss, sprich
[autoit]$Anzahl_der_Input_Felder = 10
[/autoit][autoit][/autoit][autoit]$breite = 200
[/autoit][autoit][/autoit][autoit]
;200 wurde jetzt willkürlich festgelegt$hoehe = ($Anzahl_der_Input_Felder * 50) + 80
[/autoit][autoit][/autoit][autoit]
;80 steht für 30 pixel abstand von oben und 30 von unten
;50 steht für 30 pixel ist das Inputfeld groß und 20 der Abstand zum nächsten$neues_GUI = GUICreate("GUI", $breite, $hoehe)
[/autoit][autoit][/autoit][autoit]Dim $Input[100]
[/autoit][autoit][/autoit][autoit]For $i = 0 To $Anzahl_der_Input_Felder Step 1
[/autoit][autoit][/autoit][autoit]
$Input[$i] = GUICtrlCreateInput("Inputfeld " & $i, 20, 30 + ($i * 50), 120, 30)
NextGUISetState()
[/autoit][autoit][/autoit][autoit]While True
[/autoit]
WEndso in etwa könnte dein 2. GUI aussehen, kannst ja die Variable $Anzahl_der_Input_Felder verändern
Gruß
Prajoss
-
Bin auch dabei
Als Zocker kann ich mir sowas nicht entgehen lassen
-
Ich fass mal zusammen,
das 1. Problem war, dass du vergessen hast den Zähler zu erhöhen
(Lösung durch Canyon)und das 2. wäre, dass der verwendete Befehl "PixelSearch" immer wieder von
vorne angefangen hätte und immer bei der selben Stelle gestoppt hätte -> Endlosschleife
(Lösung durch latemail)Manchmal vergisst man dem Threadersteller mitzuteilen was er falsch gemacht hat und
wie man dieses Problem behoben hatGruß
Prajoss
-
wieso liest du nicht jede Zeile einzeln aus und schreibst es in ein Array
und danach kombinierst du die Informationen aus dem Array wie du sie brauchst? -
Also um wirklich sicher zu stellen dass er kein WoW mehr spielt,
müsstest du seinen PC wegnehmen & im Haus einsperren (damit er nicht zum nächsten Inet-Cafe rennt)
oder seinen Account sperren und ihm das Telefon wegnehmen (damit er nicht beim Kundendienst anruft)
Gott möge ihm Beistehen in diesen schwierigen Zeiten