Hmm, nicht ganz verstanden, ich mache sicherheitshalber mal 'nen Test.
Hierbei verwende ich nur die "Code"-Tags.
Oben eingefügt habe ich die drei Zeilen aus Posting 64, um zu testen, ob die Linefeeds verschwinden (Dein Hinweis aus Posting 65).
Dann folgt ein längerer Codeschnippsel, um zu sehen, ob der Code automatisch verkürzt wird.
C: Dieses ist nur ein Test.
; Codezeile 1
; Codezeile 2
; Codezeile 3
#Region Header #################################################################################################################\
Global Const $sProgrammname = "Inputboxen verschieben"
#include <Date.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiStatusBar.au3>
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <GuiListView.au3>
#include <String.au3>
#include <StaticConstants.au3> ;Erweiterte Einstellungen für Labels
#include <EditConstants.au3> ;Test
#include <Array.au3> ;Test
#include <GDIPlus.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#Include <Misc.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
_GDIPlus_Startup()
#EndRegion Header ##############################################################################################################/
#Region Constanten & Variablen deklarieren und belegen #########################################################################\
; --- Globale Variablen deklarieren ---------------------------------------------------------------------------------------\
Opt("MustDeclareVars", 1) ;Zwingt den Programmierer, Variablen ordentlich zu deklarieren, vor der ersten Benutzung.
Global $FormKombiansicht, $MenuItem
Global $sTmp, $sText, $i
Global $sListViewHeader, $iDBFeldanzahl
Global $hGUI, $aMousePos
Global $sUserMessageOld, $sUserMessageNew
Global $bGUIRedesign
Global $iDoItOnlyOnce = 0
Opt("MouseCoordMode", 0)
Global $iPressed = 0, $iLastCtrlID = -1
$iDBFeldanzahl = 30 ;So viele Felder gibt es in der Datenbank
; --- Globale Variablen deklarieren ---------------------------------------------------------------------------------------/
#EndRegion Constanten & Variablen deklarieren und belegen ######################################################################/
#Region Bedienoberfläche zeichnen ##############################################################################################\
; --- Fenster & Menü erzeugen-----------------------------------------------------------\
Global $FormKombiansicht = GUICreate($sProgrammname, 1200, 768, 10, 10) ;Das Hauptfenster erzeugen.
GUICtrlCreatePic(@ScriptDir & '\Example Images\background.jpg', 0, 0, 1200, 768)
; --- Menüzweig 1
Global $MenuA = GUICtrlCreateMenu("Datei")
Global $MenuItemAExit = GUICtrlCreateMenuItem("Schließen", $MenuA)
; --- Menüzweig 2
Global $MenuB = GUICtrlCreateMenu("Einstellungen")
Global $MenuItemOptionen = GUICtrlCreateMenuItem("Maske umgestalten", $MenuB)
; --- Menüzweig 3
Global $MenuC = GUICtrlCreateMenu("?")
Global $MenuItemCProgramminfo = GUICtrlCreateMenuItem("Programminfo", $MenuC)
Global $MenuItemCHistory = GUICtrlCreateMenuItem("History && Danksagung", $MenuC)
GUISetState(@SW_SHOW) ;??? Was macht dieser Befehl?
; --- Fenster & Menü erzeugen-----------------------------------------------------------/
Global $aHandleGUIElement[$iDBFeldanzahl + 1]
Global $asGUI_Element[22] ;Array mit 30 elementen - so viele GUI-Elemente gibt es.
; --- GUI-Parameter der Input-Boxen und deren Labels ------------------------------------------------------------\
; 1 2 3 4 5 6 7 8 9 10 11 12 1314 1516 17
$asGUI_Element[0] = "Inputbox| 15|320|100| 22|L|0x0000|0|Zeile 0 |U| 0| 0|110| 22|L|0x0000|0|Datensatz-ID"
$asGUI_Element[1] = "Inputbox|150|375|100| 22|L|0x0000|0|Zeile 1 |R| -5| 0|110| 22|L|0x0000|0|Annahmedatum"
$asGUI_Element[2] = "Inputbox|150|400|100| 22|L|0x0000|0|Zeile 2 |R| -5| 0|110| 22|R|0x0000|0|Abholdatum"
$asGUI_Element[3] = "Inputbox|390|375|200| 22|L|0x0000|0|Zeile 3 |O| -5| 0|110| 22|R|0x0000|0|Gerät"
$asGUI_Element[4] = "Inputbox|390|400|200| 22|L|0x0000|0|Zeile 4 |U| 0| 0|110| 22|R|0x0000|0|Schadenskürzel"
$asGUI_Element[5] = "Inputbox|150|495|100| 22|L|0x0000|0|Zeile 5 |L| -5| 0|110| 22|R|0x0000|0|Firma"
$asGUI_Element[6] = "Inputbox|150|520|100| 22|L|0x0000|0|Zeile 6 |L| -5| 0|110| 22|R|0x0000|0|Vorname"
$asGUI_Element[7] = "Inputbox|150|545|100| 22|L|0x0000|0|Zeile 7 |L| -5| 0|110| 22|R|0x0000|0|Nachname"
$asGUI_Element[8] = "Inputbox|450|550|100| 22|R|0x0000|0|Zeile 8 |L| -5| 0|110| 22|R|0x0000|0|Endpreis"
$asGUI_Element[9] = "Inputbox|450|575|100| 22|R|0x0000|0|Zeile 9 |L| -5| 0|110| 22|R|0x0000|0|Re-Nr."
$asGUI_Element[10] = "Inputbox|450|450|100| 22|R|0x0000|0|Zeile 10 |L| -5| 0|110| 22|R|0x0000|0|Anzahlung"
$asGUI_Element[11] = "Inputbox|450|475|100| 22|L|0x0000|0|Zeile 11 |L| -5| 0|110| 22|R|0x0000|0|Leihteile"
$asGUI_Element[12] = "Inputbox|450|500|100| 22|R|0x0000|0|Zeile 12 |L| -5| 0|110| 22|R|0x0000|0|Voranschlag"
$asGUI_Element[13] = "Inputbox|140|320|100| 22|L|0x0000|0|Zeile 13 |U| 0| 0| 85| 22|L|0x0000|0|Rekla"
$asGUI_Element[14] = "Inputbox|270|320|500| 22|L|0x0000|0|Zeile 14 |U| 0| 0|130| 22|L|0x0000|0|Projektordner"
$asGUI_Element[15] = "Inputbox|750|475|100| 22|L|0x0000|0|Zeile 15 |L| -5| 0|110| 22|R|0x0000|0|Gesprächsnotiz"
$asGUI_Element[16] = "Inputbox|750|350|100| 22|L|0x0000|0|Zeile 16 |L| -5| 0|120| 22|R|0x0000|0|Reparaturbericht"
$asGUI_Element[17] = "Inputbox|750|375|100| 22|L|0x0000|0|Zeile 17 |L| -5| 0|110| 22|R|0x0000|0|Festnetz"
$asGUI_Element[18] = "Inputbox|750|400|100| 22|L|0x0000|0|Zeile 18 |L| -5| 0|110| 22|R|0x0000|0|Mobil-Nr."
$asGUI_Element[19] = "Inputbox|750|425|100| 22|L|0x0000|0|Zeile 19 |L| -5| 0|110| 22|R|0x0000|0|E-Mail"
$asGUI_Element[20] = "Inputbox|750|450|100| 22|L|0x0000|0|Zeile 20 |L| -5| 0|110| 22|R|0x0000|0|Status"
$asGUI_Element[21] = "Inputbox|270| 10|250| 22|L|0x0000|0|Zeile 21 |L| 0| 0| 70| 22|R|0x0000|0|Suche:"
; --- GUI-Parameter der Input-Boxen und deren Labels ------------------------------------------------------------/
; --- Input-Boxen (und Labels) für Datenbankfelder --------------------------------------------------------------\
Global $avGUI_Parameter[19] ;Anzahl der Parameter eines Parametersatzes.
Global $sF_Obj
Global $iX_Obj, $iY_Obj, $iW_Obj, $iH_Obj, $hE_Obj, $sT_Obj
For $iGUI_ElementNr = 0 to Ubound($asGUI_Element)-1 ;30 Zeilen
; --- Pro Schleifendurchlauf die Parameter je eines GUI-Elements auslesen --------------------------------\
$avGUI_Parameter=Stringsplit($asGUI_Element[$iGUI_ElementNr], "|") ;Aufgesplittete Parameter
$sF_Obj = StringStripWS ($avGUI_Parameter[1], 3) ;Funktion des Objektes (von Leerzeichen links und Rechts befreit)
$iX_Obj = $avGUI_Parameter[2] ;X-Position des Objektes
$iY_Obj = $avGUI_Parameter[3] ;Y-Position des Objektes
$iW_Obj = $avGUI_Parameter[4] ;Weite des Objektes
$iH_Obj = $avGUI_Parameter[5] ;Höhe des Objektes
$hE_Obj = $avGUI_Parameter[6] ;Erweiterte Parameter, siehe AutoIt Help: GUICtrlCreateLabel, bzw. GUI Control Styles
$sT_Obj = $avGUI_Parameter[9] ;Textvorbelegung (wenn Inputbox)
; --- Pro Schleifendurchlauf die Parameter je eines GUI-Elements auslesen --------------------------------/
if $sF_Obj="Inputbox" then
$aHandleGUIElement[$iGUI_ElementNr] = GUICtrlCreateInput($sT_Obj, $iX_Obj, $iY_Obj, $iW_Obj, $iH_Obj, $hE_Obj, 0) ;Inputbox
EndIf
Next
; --- Input-Boxen (und Labels) für Datenbankfelder --------------------------------------------------------------/
#EndRegion Bedienoberfläche zeichnen ###########################################################################################/
; --- Statusbar am untersten Fensterrand ----------------------------------------------------------------------------------\
Global $idStatusbar = _GUICtrlStatusBar_Create($FormKombiansicht)
GUISetState(@SW_SHOW)
Global $idStatusbar_PartsWidth[4]
$idStatusbar_PartsWidth[0]=700
$idStatusbar_PartsWidth[1]=$idStatusbar_PartsWidth[0]+180
$idStatusbar_PartsWidth[2]=$idStatusbar_PartsWidth[1]+150
$idStatusbar_PartsWidth[3]=-1 ;$idStatusbar_PartsWidth[2]+200
_GUICtrlStatusBar_SetParts($idStatusbar, $idStatusbar_PartsWidth) ;200, 400, 700, -1) ;$idStatusbar_PartsWidth)
Global $sMausXY
_GUICtrlStatusBar_SetText($idStatusbar, $sMausXY, 0)
_GUICtrlStatusBar_SetText($idStatusbar, " ", 1)
_GUICtrlStatusBar_SetMinHeight($idStatusbar, 20) ;!!!
; --- Statusbar am untersten Fensterrand ----------------------------------------------------------------------------------/
#Region Hauptschleife ##########################################################################################################\
$hGUI = $FormKombiansicht
Global Const $SC_DRAGMOVE = 0xF012
Global $iMouseButtonLeft
Global $aRect[4]
AutoItSetOption ("MouseCoordMode", 2 ) ;Mauskoordinaten sollen sich auf den Bereich unterhalb der Menüleiste beziehen.
While True
; --- Mauskoordinaten erfassen und darstellen -------------------------------------\
$sMausXY=MouseGetPos()
_GUICtrlStatusBar_SetText($idStatusbar, $sMausXY[0] & " / " & $sMausXY[1], 0)
; --- Mauskoordinaten erfassen und darstellen -------------------------------------/
Switch GUIGetMsg()
Case -3
_Exit()
Case $MenuItemAExit
_Exit()
Case $MenuItemOptionen
Optionen()
Case $GUI_EVENT_PRIMARYDOWN ;Test
ConsoleWrite("Linker Mausbutton gedrückt" & @CRLF)
$iMouseButtonLeft = 1
Case $GUI_EVENT_PRIMARYUP ;Test
ConsoleWrite("Linker Mausbutton losgel." & @CRLF)
$iMouseButtonLeft = 0
Case $GUI_EVENT_SECONDARYDOWN ;Test
ConsoleWrite("Rechtsklick" & @CRLF)
EndSwitch
; --- Verhindern, dass sich während des Verschiebens ein anderes GUI-Element angesprochen fühlt -----\
if $iMouseButtonLeft then ;$sMausXY[2] = 1 then
$iDoItOnlyOnce += 1
if $iDoItOnlyOnce > 2 Then ;Integer-Überlauf verhindern.
$iDoItOnlyOnce =2
EndIf
Else
$iDoItOnlyOnce = 0
EndIf
; --- Verhindern, dass sich während des Verschiebens ein anderes GUI-Element angesprochen fühlt -----/
if $bGUIRedesign=1 then ;Im Menü wurde der Eintrag zum Umgestalten des GUI aktiviert.
GUI_Redesign()
EndIf
WEnd
#EndRegion Hauptschleife #######################################################################################################/
; ### Functions ################################################################################################################\
Func Optionen()
$bGUIRedesign = BitXOR($bGUIRedesign, 0x1) ;Binärwert von $bGUIRedesign toggeln.
if $bGUIRedesign=1 then ;Im Menü wurde der Eintrag zum Umgestalten des GUI aktiviert.
MsgBox(0, "", "" _
& "Sie können nun einzelne Bedienelemente" _
& @CRLF & "mit der Maus verschieben." _
& @CRLF & "Zum Beenden diesen Menüeintrag erneut anwählen!")
EndIf
EndFunc
; #############################################################################
FUNC GUI_Redesign() ; Ermöglicht es, ein einzelnes GUI-Element mit der Maus zu verschieben.
$sUserMessageNew=""
; --- Ermitteln, über welchem GUI-Element der Hauszeiger hoovert. ---------------\
;if $iDoItOnlyOnce = 1 then
For $iGUI_ElementNr = 0 to Ubound($asGUI_Element)-1
$avGUI_Parameter=Stringsplit($asGUI_Element[$iGUI_ElementNr], "|") ;Aufgesplittete Parameter
if $sMausXY[0] > $avGUI_Parameter[2] and $sMausXY[0] < ($avGUI_Parameter[2]+$avGUI_Parameter[4]) and $sMausXY[1] > $avGUI_Parameter[3] and $sMausXY[1] < ($avGUI_Parameter[3]+$avGUI_Parameter[5])then
$sUserMessageNew="Feld-Nr. " & $iGUI_ElementNr
ExitLoop
EndIf
Next
;EndIf
; --- Ermitteln, über welchem GUI-Element der Hauszeiger hoovert. ---------------/
if $sUserMessageNew <> $sUserMessageOld then
_GUICtrlStatusBar_SetText($idStatusbar, $sUserMessageNew, 1)
$sUserMessageOld=$sUserMessageNew
EndIf
if $iMouseButtonLeft then ;$sMausXY[2] = 1 then
GUICtrlSetPos($aHandleGUIElement[$iGUI_ElementNr], $sMausXY[0], $sMausXY[1])
EndIf
EndFunc ;GUI_Redesign
; #############################################################################
Func _Exit() ;Datenbank schließen und Programmende.
_GDIPlus_ShutDown()
Exit
EndFunc ;==>_Exit
; ### Functions ################################################################################################################/
Alles anzeigen