hab folgendes komisches Verhalten:
In einem ParentGui wird ein Child-Gui geöffnet, wenn im :New die Option "+Border" steht, werden die Edit-Felder auf "readonly" gesetzt! Sehr eigenartig. als Version ist bei mir aktuell AHK 1.1.36.02, aber bei den älteren verhält es sich auch so.
Ein Beispiel:
-> auf "Verwaltung" klicken, Fenster öffnet sich, dann mal versuchen in die Editfelder zu tippen, geht nicht
-> Gui, 5:new, +ParentProgMain +Resize -DPIScale +hwndhVerwaltung5 +MaxSize%WinSize5W%x%WinSize5H% +Border +ToolWindow
Einfach mal -Border daraus machen,
-> tippen geht wieder
Code: Select all
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
SetBatchLines -1
SysGet, VirtualHeight, 79
SysGet, VirtualWidth, 78
VirtualHeight := VirtualHeight
SysGet, AnzahlMonitore, MonitorCount
if AnzahlMonitore > 1
SysGet, Monitor, MonitorWorkArea , 2
else
SysGet, Monitor, MonitorWorkArea , 1
;msgbox %MonitorTop% / %MonitorRight%
VirtualWidth := MonitorRight
hIEWind := VirtualHeight*1-50
wIEWind := round(hIEWind*0.75)
if (MonitorWorkAreaBottom = "" or MonitorWorkAreaRight = "")
{
MonitorWorkAreaBottom := VirtualHeight
MonitorWorkAreaRight := VirtualWidth
}
Gui, ProgMain:new, -DPIScale +OwnDialogs +OwnDialogs +LastFound +MinSize1400x900 +Resize
Gui_ProgMain_ID := WinExist()
Gui, ProgMain:Color, 0x5D6D7E
Gui, ProgMain:Font, s11 norm cBlack, Arial
Gui, ProgMain:Margin, 10, 10
Gui, ProgMain:Font, bold s16
;-----------------------------------------
Gui, ProgSubMenu:New, -DPIScale -Border -Resize -Caption +ParentProgMain hwndhProgSubMenu
Gui, ProgSubMenu:Color, 0x5D6D7E
Gui, ProgSubMenu:Font, bold s12, Arial
Gui, ProgSubMenu:add, Button, xm ym Section w220 gStartGui5, Verwaltung
Gui, ProgSubMenu:add, Button, xs w220 , Betriebauftrag
Gui, ProgSubMenu:add, Button, y+80 w220 gNeuLaden vNeuLadenButton, Menü neu laden
Gui, ProgSubMenu:Show, % "x3 y3 h" VirtualHeight-100 " w" 240
Gui, ProgMain:Add, Text, % "y0 x240 w3 h" VirtualHeight-100 " +0x1000"
Gui, ProgMain:Font, norm cBlack s8, Arial
Gui, ProgMain:Add, StatusBar, 0x100
Gui, ProgMain:show, % "x0 y0 Maximize", Test
WinGetPos , ProgMainX, ProgMainY, ProgMainWidth, ProgMainHeight, %ProgramTitle%
ProgMainSizeH := ProgMainHeight-140
ProgMainSizeW := ProgMainWidth-260
GuiControl, MoveDraw, NeuLadenButton, % "x" 10 " y" ProgMainHeight-150
OnMessage(0x03, "WM_MOVE")
Return
Neuladen:
reload
return
ProgMainGuiClose:
ExitApp
return
;#########################################################################################
StartGui5:
WinAbstand5X := 10
WinAbstand5Y := 10
WinSize5H := ProgMainSizeH+30
WinSize5W := ProgMainSizeW-80
WinSize5WTab := WinSize5W-50
WinSize5HTab := WinSize5H-50
WinSize5WIE := round(WinSize5WTab*0.4)
WinSize5HIE := WinSize5HTab-100
WinSize5WLV1 := WinSize5WTab-WinSize5WIE-(WinAbstand5X*3)
WinSize5HLV1 := 400
WinSize5WZW1 := round(WinSize5WLV1/3-(2*WinAbstand5X)/3)
WinSize5HZW1 := round((WinSize5HTab-WinSize5HLV1-1*WinAbstand5Y)/2)-50
WinSize5WZW2 := round(WinSize5WLV1/3-(2*WinAbstand5X)/3)
WinSize5HZW2 := round(WinSize5HZW1*0.7)-10
WinSize5WBut := 150
WinSize5HBut := 25
Gui, 5:new, +ParentProgMain +Resize -DPIScale +hwndhVerwaltung5 +MaxSize%WinSize5W%x%WinSize5H% +Border +ToolWindow
Gui, 5:Color, 0x5D6D7E
Gui, 5:Margin, %WinAbstand5X%, %WinAbstand5Y%
Gui, 5:Font, s11 norm cBlack cBlack, Arial
Gui, 5:Font, norm s8
;-----------------------------------------
Gui, 5:Font, norm s10
Gui, 5:Add, Tab2,% "x" WinAbstand5X " y" WinAbstand5Y " h" WinSize5HTab " w" WinSize5WTab " vGewaehlerTab AltSubmit -buttons ", Anfragen|KundenBestellungen|Betriebsaufträge|Artikel
;-------------------------------
Gui, 5:Tab, 1
Gui, 5:Font, norm s10
Gui, 5:add, text, x+5 Section, Vorgang:
Gui, 5:add, Edit, x+10 h35 w200 vvListeDatenSucheVorgang,
Gui, 5:add, text, x+10 h35 , Kunde:
Gui, 5:add, Edit, x+10 w150 h35vvListeDatenSucheKunden,
Gui, 5:add, Edit, x+10 w100 h35 vSQLvListeDatenSucheKunden,
Gui, 5:Font, norm s8
Gui, 5:add, ListView, % "xs Section w" WinSize5WLV1 " h" WinSize5HLV1 " HWNDhHLV grid AltSubmit vResultsLV +LV0x10000", Art|Bild|VorgangNr|Vorgang|Kunde|TERMIN|Jahr|DatumAnfrage|DatumAuftrag|PfadAnfrage|PfadAuftrag|Art|StatusVorgang|KundenNr|Beschreibung
Gui, 5:Add, ActiveX, % "ys w" WinSize5WIE " h" WinSize5HIE " vWB VScroll", Mozilla.Browser
ComObjConnect(WB, WB_events)
;-------------------------------------------------------------------------------
Gui, 5:Tab, 2
gui, 5:Add, Edit, x10 y+10 Section vBestellungenKundeKundeFilter
gui, 5:Add, Edit, ys vBestellungenKundeBestellnrFilter
Gui, 5:add, ListView, % "xs Section w" WinSize5WLV1 " h" WinSize5HLV1 " HWNDHLVBestellungenKunde grid AltSubmit vResultsLVBestellungenKunde +LV0x10000", LfdNr|Kunde|Bestellnummer|Liefertermin|Auftrag BIOS|Ersteller|Datum Ablage|Pfad|erledigt
;-------------------------------------------------------------------------------
Gui, 5:show, x250 y10 w%WinSize5W% h%WinSize5H% ,Übersicht
Return
GuiShowVerwaltung:
Gui, 5:show
return
5GuiClose:
SG2 := ""
Gui, 5:Destroy
return
;#########################################################################################
WM_MOVE(wParam, lParam)
{
X := lParam & 0xFFFF
Y := lParam >> 16
Gui +LastFound
if A_GuiControl
Control := "`n(in control " . A_GuiControl . ")"
;https://www.autohotkey.com/board/topic/50516-onmessage-wm-move-wm-windowposchanged-wait-till-done/
;https://www.autohotkey.com/board/topic/96671-prevent-window-from-moving/
;https://www.autohotkey.com/board/topic/46525-detect-window-move/
; Timer als Function https://www.autohotkey.com/boards/viewtopic.php?t=13010
;global MovedGui := A_Gui
;ToolTip You are moving the Gui window #%A_Gui% at client coordinates %X%x%Y%.%Control%/%A_GuiControl%
If (X < 250 and (A_Gui = "5"))
{
funcFin := Func("Finished").bind(A_Gui,X,Y)
SetTimer,% funcFin,-100
;Gui, %A_Gui%:Show, x250
;
}
If (Y < 35 and (A_Gui = "5"))
{
;ToolTip You are moving the Gui window #%A_Gui% at client coordinates %X%x%Y%.%Control%/%A_GuiControl%
funcFin := Func("Finished").bind(A_Gui,X,Y)
SetTimer,% funcFin,-100
;Gui, %A_Gui%:Show, y40
}
;GuiControl, %A_Gui%:MoveDraw, %Control%, x250 y%Y%
}
Finished(GuiW,X:=-9999999, Y:=-9999999){
if (GuiW = "ProgMain" or GuiW = "ProgSubMenu")
return
if (X < 250 and X != -9999999)
{
;Gui, %GuiW%:Hide
Ynew := Y-30
Gui, %GuiW%:Show, x250 y%Ynew%
}
if (Y < 10 and Y != -9999999)
{
;Gui, %GuiW%:Hide
Gui, %GuiW%:Show, x%X% y10
}
}