Hallo zusammen,
ich würde gern 3 Icons, per Drag & Drop ausm einem "Icon-Vorrat" von 24 Stück, in drei "Kästchen" der GUI ablegen, aber die Position an der das Icon abgelegt wurde auch festhalten, sodass man quasi beim nächsten Aufruf sehen kann, auf welchem Kästchen welches Icon abgelegt wurde. Die Icons haben nachher auch 24 unterschiedliche Farben, jetzt gerade war ich einfach zu Faul alle anzulegen
Ist mein mein Vorhaben soweit Verständlich?
Ich habe quasi jetzt drei Fragen:
-Wie speichere im besten die Position, wo das Icon abgelegt wurde? (Ini-Datei? Oder brauch ich doch ne MySQL? Andere Ideen?)
-Wie rufe ich es entsprechend nachher wieder auf?
_Setpos habe ich mir irgendwo her geklaut... das müsste ich auch etwas verschmälern, bzw. optimierenDrag_Drop.zip... aber kann ich da überhaupt mit einer Schleife arbeiten? Außerdem habe ich das Problem, dass mir die Icons nach links "weg hüpfen". Das habe ich aber erst, seit dem ich von der Festen Variablen aufn Array umgestellt habe...
Im Anhang auch die Icons... Im Ordner sind diese enthalten, der wiederum im Scriptverzeichnis liegen muss...
Danke im voraus für die Hilfe (ich tippe mal drauf dass Musashi der erste ist, der antwortet )
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
Global $g_aidGraphics[3]
Global $Pic[25]
$hGui = GUICreate("Drag&Drop", 800, 800, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_VSCROLL))
GUISetState(@SW_SHOW)
bilder_initialisieren()
freie_plaetze()
AdlibRegister("_SetPos", 100) ;Die Funktion _SetPos wird nun alle 0,1s aufgerufen
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
Func bilder_initialisieren()
$j = 20
For $i = 1 to UBound($Pic)-1
$Pic[$i] = GUICtrlCreateIcon(@ScriptDir & "\Farben\" & $i &".ico", -1, 10, $i+$j, 30, 30) ;Icon (Bild) wird erstellt
$j = $j +30
Next
EndFunc
Func freie_plaetze()
$g_aidGraphics[0] = GUICtrlCreateGraphic(220, 110, 100, 100)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetColor(-1, 0x00)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 1)
$g_aidGraphics[1] = GUICtrlCreateGraphic(350, 110, 100, 100)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetColor(-1, 0x00)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 1)
$g_aidGraphics[1] = GUICtrlCreateGraphic(480, 110, 100, 100)
GUICtrlSetBkColor(-1, 0xFFFFFF)
GUICtrlSetColor(-1, 0x00)
GUICtrlSetGraphic(-1, $GUI_GR_HINT, 1)
EndFunc
Func _SetPos()
While _IsPressed(01) ;_IsPressed(01) überprüft, ob die linke Maustaste gedrückt ist
$MouseHoverControl = GUIGetCursorInfo($hGui) ;Während Sie gedrückt ist (Während = While), kann man mit dem Befehl GUIGetCursorInfo Informationen über die Maus auf der GUI bekommen
Switch $MouseHoverControl[4] ;Hier schaltet man auf die GUIGetCursorInfo um, die ausgibt, über welchem Control (in dem Fall Bild) sich die Maus befindet
Case $Pic[1] ;Für den Fall (Fall = Case), dass die Maus über $Pic1 ist,
GUICtrlSetPos($Pic[1], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic1 auf die Maus-Position auf der GUI gesetzt
Case $Pic[2] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[2], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic2 auf die Maus-Position auf der GUI gesetzt
Case $Pic[3] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[3], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[4] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[4], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[5] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[5], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[6] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[6], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[7] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[7], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[8] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[8], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[9] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[9], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[10] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[10], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[11] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[11], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[12] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[12], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[13] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[13], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[14] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[14], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[15] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[15], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[16] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[16], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[17] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[17], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[18] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[18], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[19] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[19], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[20] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[20], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[21] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[21], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[22] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[22], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[23] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[23], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
Case $Pic[24] ;Für den Fall (Fall = Case), dass die Maus über $Pic2 ist,
GUICtrlSetPos($Pic[24], $MouseHoverControl[0]-45, $MouseHoverControl[1]-30) ;wird die Position des $Pic3 auf die Maus-Position auf der GUI gesetzt
EndSwitch
WEnd
EndFunc
Alles anzeigen