Nicht angemeldet.
Hier können Sie Ihre eigenen Skripte und UDF's veröffentlichen undanderen zum Download anbieten oder von anderen herunterladen
#cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.4.0 Author: TimBlo Script Function: Creates a scrollbar field for any content and userdefinied scrollers. It's like a DIV-container in HTML. Note: this code does work bitchy with resizebar windows #ce ---------------------------------------------------------------------------- #Region startup zone #include <Misc.au3> #include <GUIConstantsEx.au3> Global $Scrollers[1][4][5] Global $Scrollerguis[1][5] Global $ScrollerID = 1 Global $ScrZoneAutoEvent = False #EndRegion end startup Func _ScrollZoneCreate($gui, $left, $top, $width, $height); resizebug active $length = UBound($Scrollers, 2) ReDim $Scrollers[$ScrollerID][$length][5] ReDim $Scrollerguis[$ScrollerID][5] $Scrollers[$ScrollerID-1][1][0] = $left $Scrollers[$ScrollerID-1][1][1] = $top $Scrollers[$ScrollerID-1][1][2] = $width-9 $Scrollers[$ScrollerID-1][1][3] = $height $Scrollers[$ScrollerID-1][1][4] = GUICtrlCreateLabel("", $left, $top, $width-9, $height) GUICtrlSetBkColor($Scrollers[$ScrollerID-1][1][4], 0x777777) $Scrollers[$ScrollerID-1][0][0] = GUICtrlCreateLabel("", $left+$width-9, $top+9, 9, $height-18) GUICtrlSetBkColor($Scrollers[$ScrollerID-1][0][0], 0x5555BB) $Scrollers[$ScrollerID-1][0][1] = GUICtrlCreateLabel("", $left+$width-9, $top, 9, 9) GUICtrlSetBkColor($Scrollers[$ScrollerID-1][0][1], 0xCCCCFF) $Scrollers[$ScrollerID-1][0][2] = GUICtrlCreateLabel("", $left+$width-9, $top+9, 9, $height-18) GUICtrlSetBkColor($Scrollers[$ScrollerID-1][0][2], 0xAAAAFF) $Scrollers[$ScrollerID-1][0][3] = GUICtrlCreateLabel("", $left+$width-9, $top+$height-9, 9, 9) GUICtrlSetBkColor($Scrollers[$ScrollerID-1][0][3], 0xCCCCFF) $Scrollers[$ScrollerID-1][0][4] = 0; Pictmode off $Scrollers[$ScrollerID-1][2][0] = 0; Saving the ScrollZoneSize $Scrollers[$ScrollerID-1][2][1] = 0; Saving the sliderpos $Scrollers[$ScrollerID-1][2][2] = $height-18; Saving the sliderheight $Scrollers[$ScrollerID-1][2][3] = $gui $Scrollers[$ScrollerID-1][2][4] = 9; Saving the slidersize If $ScrZoneAutoEvent Then GUICtrlSetOnEvent($Scrollers[$ScrollerID-1][0][0], "__ScrollZoneAutoEventHandler") GUICtrlSetOnEvent($Scrollers[$ScrollerID-1][0][2], "__ScrollZoneAutoEventHandler") EndIf $Scrollers[$ScrollerID-1][3][0] = 1 $Scrollers[$ScrollerID-1][3][1] = 1 $Scrollers[$ScrollerID-1][3][2] = -1 $Scrollers[$ScrollerID-1][3][3] = 3 $Scrollers[$ScrollerID-1][3][4] = 1 $Scrollerguis[$ScrollerID-1][0] = 0; resizing information GUICtrlSetResizing($Scrollers[$ScrollerID-1][1][4], $Scrollerguis[$ScrollerID-1][0]) $temp = WinGetPos($gui) ; save guiPos for the resizing $Scrollerguis[$ScrollerID-1][1] = $temp[0] $Scrollerguis[$ScrollerID-1][2] = $temp[1] $Scrollerguis[$ScrollerID-1][3] = $temp[2] $Scrollerguis[$ScrollerID-1][4] = $temp[3] $ScrollerID += 1 Return $ScrollerID-2 EndFunc Func _ScrollZoneSetSlidersPic($Zone, $upPic, $scrollPic, $downPic, $bgPic); sizebug active If $Scrollers[$Zone][0][4] = 0 Then; Activate Pictmode GUICtrlDelete($Scrollers[$Zone][0][0]) GUICtrlDelete($Scrollers[$Zone][0][1]) GUICtrlDelete($Scrollers[$Zone][0][2]) GUICtrlDelete($Scrollers[$Zone][0][3]) $Scrollers[$Zone][0][0] = GUICtrlCreatePic("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][1][3]-($Scrollers[$Zone][2][4]*2)) $Scrollers[$Zone][0][1] = GUICtrlCreatePic("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) $Scrollers[$Zone][0][2] = GUICtrlCreatePic("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][1][3]-($Scrollers[$Zone][2][4]*2)) $Scrollers[$Zone][0][3] = GUICtrlCreatePic("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) $Scrollers[$Zone][0][4] = 1 If $ScrZoneAutoEvent Then GUICtrlSetOnEvent($Scrollers[$Zone][0][0], "__ScrollZoneAutoEventHandler") GUICtrlSetOnEvent($Scrollers[$Zone][0][2], "__ScrollZoneAutoEventHandler") EndIf EndIf GUICtrlSetImage($Scrollers[$Zone][0][0], $bgPic) GUICtrlSetImage($Scrollers[$Zone][0][1], $upPic) GUICtrlSetImage($Scrollers[$Zone][0][2], $scrollPic) GUICtrlSetImage($Scrollers[$Zone][0][3], $downPic) __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][2][0]) Return 1 EndFunc Func _ScrollZoneSetSlidersColors($Zone, $upColor, $scrollColor, $downColor, $bgColor); sizebug active If $Scrollers[$Zone][0][4] = 1 Then; Deactivate Pictmode GUICtrlDelete($Scrollers[$Zone][0][0]) GUICtrlDelete($Scrollers[$Zone][0][1]) GUICtrlDelete($Scrollers[$Zone][0][2]) GUICtrlDelete($Scrollers[$Zone][0][3]) $Scrollers[$Zone][0][0] = GUICtrlCreateLabel("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][1][3]-($Scrollers[$Zone][2][4]*2)) $Scrollers[$Zone][0][1] = GUICtrlCreateLabel("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) $Scrollers[$Zone][0][2] = GUICtrlCreateLabel("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][1][3]-($Scrollers[$Zone][2][4]*2)) $Scrollers[$Zone][0][3] = GUICtrlCreateLabel("", $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) $Scrollers[$Zone][0][4] = 0 If $ScrZoneAutoEvent Then GUICtrlSetOnEvent($Scrollers[$Zone][0][0], "__ScrollZoneAutoEventHandler") GUICtrlSetOnEvent($Scrollers[$Zone][0][2], "__ScrollZoneAutoEventHandler") EndIf EndIf GUICtrlSetBkColor($Scrollers[$Zone][0][0], $bgColor) GUICtrlSetBkColor($Scrollers[$Zone][0][1], $upColor) GUICtrlSetBkColor($Scrollers[$Zone][0][2], $scrollColor) GUICtrlSetBkColor($Scrollers[$Zone][0][3], $downColor) __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][2][0]) Return 1 EndFunc Func _ScrollZoneSetSlidersSize($Zone, $width=9); sizebug active $diff = $Scrollers[$Zone][2][4]-$width If $diff = 0 Then Return 1 $Scrollers[$Zone][1][2] += $diff $Scrollers[$Zone][2][4] = $width GuiCtrlSetPos($Scrollers[$Zone][1][4], $Scrollers[$Zone][1][0], $Scrollers[$Zone][1][1], $Scrollers[$Zone][1][2], $Scrollers[$Zone][1][3]) GuiCtrlSetPos($Scrollers[$Zone][0][0], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$width, $width, $Scrollers[$Zone][1][3]-$width-$width) GuiCtrlSetPos($Scrollers[$Zone][0][1], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1], $width, $width) GuiCtrlSetPos($Scrollers[$Zone][0][2], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$width, $width, $Scrollers[$Zone][1][3]-$width-$width); get buggytest ; dispensing on ResetSlider GuiCtrlSetPos($Scrollers[$Zone][0][3], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][1][3]-$width, $width, $width) __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][2][0]) EndFunc Func _ScrollZoneSetBgImage($Zone, $file) GUICtrlDelete($Scrollers[$Zone][1][4]) $Scrollers[$Zone][1][4] = GUICtrlCreatePic($file, $Scrollers[$Zone][1][0], $Scrollers[$Zone][1][1], $Scrollers[$Zone][1][2], $Scrollers[$Zone][1][3]) GUICtrlSetResizing($Scrollers[$Zone][1][4], $Scrollerguis[$Zone][0]) Return 1 EndFunc Func _ScrollZoneSetBgColor($Zone, $color) GUICtrlDelete($Scrollers[$Zone][1][4]) $Scrollers[$Zone][1][4] = GUICtrlCreateLabel("", $Scrollers[$Zone][1][0], $Scrollers[$Zone][1][1], $Scrollers[$Zone][1][2], $Scrollers[$Zone][1][3]) GUICtrlSetBkColor($Scrollers[$Zone][1][4], $color) GUICtrlSetResizing($Scrollers[$Zone][1][4], $Scrollerguis[$Zone][0]) Return 1 EndFunc Func _ScrollZoneSetResizing($Zone, $resize) $Scrollerguis[$Zone][0] = $resize GUICtrlSetResizing($Scrollers[$Zone][1][4], $resize) EndFunc Func _ScrollZoneEventMode($mode) If Not $mode Then $ScrZoneAutoEvent = False Else $ScrZoneAutoEvent = True EndIf EndFunc Func __ScrollZoneAutoEventHandler() For $c = 0 To UBound($Scrollers, 1)-1 If @GUI_CTRLID = $Scrollers[$c][0][2] Or @GUI_CTRLID = $Scrollers[$c][0][0] Then __ScrollZoneActive($c) Return 1 EndIf Next Return 0 EndFunc Func __ScrollZoneActive($Zone); Complete If $Scrollers[$Zone][2][0] <= $Scrollers[$Zone][1][3] Then Return 0; Funktion beenden wenn nichts zu Scrollen da ist ;- $scrh = $Scrollers[$Zone][2][1]; Scrollerhöhe aus dem Speicher auslesen und Zwischenspeichern $oPos = $Scrollers[$Zone][2][1]; Scrollerhöhe aus dem Speicher auslesen und Zwischenspeichern ;- $gPos = MouseGetPos(1); Mausposition auslesen $aPos = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][0][2]); Scrollerposition im GUI auslesen $pl = $gPos-$aPos[1]; Der MouseGetPos überschuss zur oberen Kante des GUIs $tl = $gPos-$Scrollers[$Zone][2][1]; Höchstposition des Scrollers $bl = $gPos+($Scrollers[$Zone][1][3]-(2*$Scrollers[$Zone][2][4])-$Scrollers[$Zone][2][2])-$Scrollers[$Zone][2][1]; Tiefstposition des Scrollers ;- $calcf = 0-(($Scrollers[$Zone][2][0]+10)-$Scrollers[$Zone][1][3])/($Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][2]); Kalkulationsfaktor zwischenspeichern ;- While _IsPressed("01","user32.dll"); Solange der Scroller aktiv ist ;- $nPos = MouseGetPos(1); Mausposition auslesen If $nPos < $tl Then; Wenn die Mausposition höher als die Höchstposition ist $nPos= $tl; Die Position auf Höchstposition zwischenspeichern ElseIf $nPos > $bl Then; Wenn die Mausposition tiefer als die Tiefstposition ist $nPos= $bl; Die Position auf Tiefstposition zwischenspeichern EndIf $scrh = $nPos-$tl; Die Scrollerhöhe berechnen ;- If $scrh <> $oPos Then; Wenn die neue Scrollerhöhe nicht der alten gleich ist ;- GuiCtrlSetPos($Scrollers[$Zone][0][2], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $nPos-$pl); Scroller in neue Position bringen $Scrollers[$Zone][2][1] = $scrh; Scrollerhöhe zwischenspeichern $oPos = $scrh; Scrollerhöhe zwischenspeichern ;- $scrw = Round($calcf*($scrh), 0); Anzeigehöhe berechnen und zwischenspeichern $Scrollers[$Zone][3][2] = $scrw-1; Orientierungsposition zwischenspeichern GUICtrlSetPos($Scrollers[$Zone][3][0], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][3][1], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][3][2], $Scrollers[$Zone][3][3], $Scrollers[$Zone][3][4]) ;- For $c = 4 To UBound($Scrollers, 2)-1; Alle Inhalte in neue Position bringen GuiCtrlSetPos($Scrollers[$Zone][$c][0], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][$c][1], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][$c][2]+$scrw, $Scrollers[$Zone][$c][3], $Scrollers[$Zone][$c][4]) If $Scrollers[$Zone][$c][2]+$scrw < 0 Or $Scrollers[$Zone][$c][2]+$scrw+$Scrollers[$Zone][$c][4] > $Scrollers[$Zone][1][3] Then GUICtrlSetState($Scrollers[$Zone][$c][0], $GUI_HIDE) Else GUICtrlSetState($Scrollers[$Zone][$c][0], $GUI_SHOW) EndIf Next EndIf WEnd $Scrollers[$Zone][2][1] = $scrh; Scrollerhöhe in den Speicher schreiben EndFunc Func __ScrollZoneResetSlider($Zone, $height) $Scrollers[$Zone][2][0] = $height If $Scrollers[$Zone][1][3] < $height Then $nPos = Round(($Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4])/(($height+10)-$Scrollers[$Zone][1][3]+$Scrollers[$Zone][2][4]+$Scrollers[$Zone][2][4])*($Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]), 0) Else $nPos = $Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4] EndIf GuiCtrlSetPos($Scrollers[$Zone][0][2], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4]+$Scrollers[$Zone][2][1], $Scrollers[$Zone][2][4], $nPos) $Scrollers[$Zone][2][2] = $nPos EndFunc Func __ScrollZoneResizing($Zone) $oPos = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][1][4]); central pos. reading $gPos = WinGetPos($Scrollers[$Zone][2][3]) Select Case BitAND($Scrollerguis[$Zone][0], 1) = 1 ; Unable to generate this resizing action Case BitAND($Scrollerguis[$Zone][0], 2) = 2; dock left $diff = $oPos[0]-$Scrollers[$Zone][1][0] $oPos[2] -= $diff $oPos[0] = $Scrollers[$Zone][1][0] Case BitAND($Scrollerguis[$Zone][0], 4) = 4; dock right $diff = ($oPos[0]+$oPos[2])-($Scrollerguis[$Zone][3]-($Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2])) $oPos[2] += $diff $oPos[0] = $Scrollers[$Zone][1][0] Case BitAND($Scrollerguis[$Zone][0], 8) = 8; dock horizontal center Case BitAND($Scrollerguis[$Zone][0], 16) = 16; nothing ?! Sleep(2); do nothing ;) Case BitAND($Scrollerguis[$Zone][0], 32) = 32; dock top Case BitAND($Scrollerguis[$Zone][0], 64) = 64; dock bottom Case BitAND($Scrollerguis[$Zone][0], 128) = 128; dock vertical center Case BitAND($Scrollerguis[$Zone][0], 256) = 256; lock width Case BitAND($Scrollerguis[$Zone][0], 512) = 512; lock height EndSelect GUICtrlSetPos($Scrollers[$Zone][1][4], $oPos[0], $oPos[1], $oPos[2], $oPos[3]) GUICtrlSetPos($Scrollers[$Zone][0][0], $oPos[0]+$oPos[2], $oPos[1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $oPos[3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]) GUICtrlSetPos($Scrollers[$Zone][0][1], $oPos[0]+$oPos[2], $oPos[1], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) GUICtrlSetPos($Scrollers[$Zone][0][2], $oPos[0]+$oPos[2], $oPos[1]+$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $oPos[3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]) GUICtrlSetPos($Scrollers[$Zone][0][3], $oPos[0]+$oPos[2], $oPos[1]+$oPos[3]-$Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4], $Scrollers[$Zone][2][4]) $Scrollers[$Zone][1][0] = $oPos[0] $Scrollers[$Zone][1][1] = $oPos[1] $Scrollers[$Zone][1][2] = $oPos[2] $Scrollers[$Zone][1][3] = $oPos[3] __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][2][0]) EndFunc Func __ScrollZoneScrollToPos($Zone, $pos) If $pos > $Scrollers[$Zone][2][0]-$Scrollers[$Zone][1][3] Then $pos = $Scrollers[$Zone][2][0]-$Scrollers[$Zone][1][3] If $pos < 0 Then $pos = 0 $calcf = 0-(($Scrollers[$Zone][2][0]+10)-$Scrollers[$Zone][1][3])/($Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][2]); $scrh = $Scrollers[$Zone][2][1] $oPos = Round(($pos)/$calcf, 0) If $pos > 0 Then $pos = Round($oPos*$calcf, 0) $scrw = 0-$pos-Round($calcf*($scrh), 0) GUICtrlSetPos($Scrollers[$Zone][0][2], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][1][2], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][2][4]-$oPos) $Scrollers[$Zone][2][1] = 0-$oPos For $c = 3 To UBound($Scrollers, 2)-1 $Scrollers[$Zone][$c][2] += $scrw GuiCtrlSetPos($Scrollers[$Zone][$c][0], $Scrollers[$Zone][1][0]+$Scrollers[$Zone][$c][1], $Scrollers[$Zone][1][1]+$Scrollers[$Zone][$c][2], $Scrollers[$Zone][$c][3], $Scrollers[$Zone][$c][4]) If $Scrollers[$Zone][$c][2] < -2 Or $Scrollers[$Zone][$c][2]+$Scrollers[$Zone][$c][4] > $Scrollers[$Zone][1][3]+1 Then GUICtrlSetState($Scrollers[$Zone][$c][0], $GUI_HIDE) Else GUICtrlSetState($Scrollers[$Zone][$c][0], $GUI_SHOW) EndIf Next EndFunc Func _ScrollZoneAddLabel($Zone, $text, $left=0, $top=-1, $width=-1, $height=-1, $style=-1, $exstyle=-1); Complete GUISwitch($Scrollers[$Zone][2][3]) If $top = -1 Then $top = $Scrollers[$Zone][2][0] EndIf If $Scrollers[$Zone][2][0] > $Scrollers[$Zone][1][3] Then $calcf = 0-(($Scrollers[$Zone][2][0]+10)-$Scrollers[$Zone][1][3])/($Scrollers[$Zone][1][3]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][4]-$Scrollers[$Zone][2][2]) $scrw = Round($calcf*($Scrollers[$Zone][2][1]), 0) Else $scrw = 0 EndIf $lengths = UBound($Scrollers, 2) $length = $Scrollers[$Zone][3][0]+3 If $length+1 > $lengths Then ReDim $Scrollers[$ScrollerID-1][$length+1][5] $Scrollers[$Zone][$length][1] = $left $Scrollers[$Zone][$length][2] = $top If $exstyle < 0 Then If $style < 0 Then If $height < 0 Then If $width < 0 Then $Scrollers[$Zone][$length][0] = GUICtrlCreateLabel($text, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top+$scrw) $temp = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][$length][0]) $Scrollers[$Zone][$length][3] = $temp[2] $Scrollers[$Zone][$length][4] = $temp[3]-8 Else $Scrollers[$Zone][$length][0] = GUICtrlCreateLabel($text, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top+$scrw, $width) $temp = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][$length][0]) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $temp[3]-8 EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreateLabel($text, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top+$scrw, $width, $height) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreateLabel($text, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top+$scrw, $width, $height, $style) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreateLabel($text, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top+$scrw, $width, $height, $style, $exstyle) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf If $Scrollers[$Zone][$length][2]+$Scrollers[$Zone][$length][4] > $Scrollers[$Zone][2][0] Then __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][$length][2]+$Scrollers[$Zone][$length][4]) ;__ScrollZoneScrollToPos($Zone, $top) $Scrollers[$Zone][3][0] += 1 If $top+$scrw < 0 Or $top+$scrw+$Scrollers[$Zone][$length][4] > $Scrollers[$Zone][1][3] Then GUICtrlSetState($Scrollers[$Zone][$length][0], $GUI_HIDE); Return $Scrollers[$Zone][$length][0]; Returns the handle from the new Control... EndFunc Func _ScrollZoneAddPic($Zone, $pic, $left=0, $top=-1, $width=-1, $height=-1, $style=-1, $exstyle=-1) If $top = -1 Then $top = $Scrollers[$Zone][2][0] EndIf $length = UBound($Scrollers, 2) ReDim $Scrollers[$ScrollerID-1][$length+1][5] $Scrollers[$Zone][$length][1] = $left $Scrollers[$Zone][$length][2] = $top If $exstyle < 0 Then If $style < 0 Then If $height < 0 Then If $width < 0 Then $Scrollers[$Zone][$length][0] = GUICtrlCreatePic($pic, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top) $temp = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][$length][0]) $Scrollers[$Zone][$length][3] = $temp[2] $Scrollers[$Zone][$length][4] = $temp[3]-8 Else $Scrollers[$Zone][$length][0] = GUICtrlCreatePic($pic, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top, $width) $temp = ControlGetPos($Scrollers[$Zone][2][3], "", $Scrollers[$Zone][$length][0]) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $temp[3]-8 EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreatePic($pic, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top, $width, $height) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreatePic($pic, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top, $width, $height, $style) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf Else $Scrollers[$Zone][$length][0] = GUICtrlCreatePic($pic, $Scrollers[$Zone][1][0]+$left, $Scrollers[$Zone][1][1]+$top, $width, $height, $style, $exstyle) $Scrollers[$Zone][$length][3] = $width $Scrollers[$Zone][$length][4] = $height EndIf If $Scrollers[$Zone][$length][2]+$Scrollers[$Zone][$length][4] > $Scrollers[$Zone][2][0] Then __ScrollZoneResetSlider($Zone, $Scrollers[$Zone][$length][2]+$Scrollers[$Zone][$length][4]) Return $Scrollers[$Zone][$length][0]; Returns the handle from the new Control... EndFunc Func _ScrollZoneControlSet($Zone, $ctrl, $top=-1, $width=-1, $height=-1, $style=-1, $exstyle=-1) ; Comming Soon EndFunc ;... to be continued.
Dauerhaft angemeldet bleiben?