Leider stehe ich schon wieder vor einem kleinen Problem und finde die (vermutlich einfache) Lösung nicht.
Für ein kleines Materialverwaltungsprogramm möchte ich eine Tabelle erstellen mit (theoretisch) unbegrenzte Anzahl Spalten. Dazu habe ich mir gedacht das ich ein Konfigurationsfenster erstellen mit der ich in der Tabelle Spalten hinzufügen und löschen kann.
Als Beispiel hab ich ein kleines Programm das dies (mit Buttons) macht, jedoch mein Problem ist, das dieses Fenster (und auch Desktop) irgendwann zu klein wird. Ich möchte deshalb nicht die Fenstergröße ändern, sondern das am rechten Rand die vertikale Scrollbar 'erscheint' sobald die Objekte nicht mehr in das Fenster passen.
Wenn ich das Fenster grösser ziehe sehe ich die erstellten Buttons, jedoch nur solange mein Desktop dafür ausreicht.
Ich habe bei GUICreate zwar die Option $WS_VSCROLL mit angegeben, aber die bewirkt, außer dass eine Scrollbar rechts angezeigt wird, rein gar nichts.
Geht das irgendwie anders? Irgendwie finde ich da keine Lösung.
Mit der Suche komme ich nicht richtig weiter, entweder finde ich hunderte Einträge (die mir nicht helfen) oder gar nichts.
Vermutlich ist das in AutiIt wieder recht simple, ich bräuchte da mal einen Tipp.
Danke schon mal.
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
Global $hMainGui
Global $IDButtonLabels
Global $aButtonIDs[0]
Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
Opt("GUIResizeMode", BitOR($GUI_DOCKLEFT, $GUI_DOCKTOP, $GUI_DOCKSIZE))
Start_MainGUI()
While 1
Sleep(100) ; Sleep to reduce CPU usage
WEnd
;----------------------------------------------------------------------------------------
Func Start_MainGUI()
$hMainGui = GUICreate("Beispiel", 350, 200, -1, -1, BitOR($WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_VSCROLL, $WS_SYSMENU, $WS_MAXIMIZEBOX))
GUISetOnEvent($GUI_EVENT_CLOSE, "CloseButton")
GUICtrlCreateButton("Add Button", 10, 10, 90)
GUICtrlSetOnEvent(-1, "AddButton")
GUICtrlCreateButton("Delete Button", 110, 10, 90)
GUICtrlSetOnEvent(-1, "DeleteButton")
$IDButtonLabels = GUICtrlCreateLabel("Buttons:0", 10, 40)
GUISetState(@SW_SHOW, $hMainGui)
EndFunc ;==>Start_MainGUI
Func AddButton()
$NextButton = UBound($aButtonIDs)
_ArrayAdd($aButtonIDs, GUICtrlCreateButton("Button " & $NextButton, 10, ($NextButton * 40) + 80, 100))
GUICtrlSetData($IDButtonLabels, "Buttons:" & $NextButton + 1)
EndFunc ;==>AddButton
Func DeleteButton()
Local $count = UBound($aButtonIDs)
If $count Then
GUICtrlDelete($aButtonIDs[$count - 1])
_ArrayDelete($aButtonIDs, $count - 1)
GUICtrlSetData($IDButtonLabels, "Buttons:" & $count - 1)
EndIf
EndFunc ;==>DeleteButton
Func CloseButton()
GUIDelete($hMainGui)
Exit
EndFunc ;==>CloseButton
Alles anzeigen