| |
|
|
Georg Teles | Ist die Erweiterung von [...] KompilierenMarkierenSeparieren'###########################################
'# #
'# Snippet von Georg Teles am 09.10.2014 #
'# #
'###########################################
$H Windows.ph
Def GetMonitorInfoA(2)!"user32","GetMonitorInfoA"
Def MonitorFromWindow(2)!"user32","MonitorFromWindow"
Def GetAsyncKeyState(1) ! "user32.dll","GetAsyncKeyState"
Struct RECT = left&,top&,right&,bottom&
Declare rcMonitor#, rcWork#
Dim rcMonitor#, RECT
Dim rcWork#, RECT
STRUCT MONITORINFO = cbSize&, rcMonitor#(16), rcWork#(16), dwFlags&
Declare mon#
Dim mon#, MONITORINFO
mon#.cbSize& = SizeOf(mon#)
CLS
' Information das erste mal in mon# einlesen
GetMonitorInfoA(MonitorFromWindow(%HWnd,2),mon#)' für OK gibt 1 zurück, 0 = Fehler
info()
Usermessages $201
While 1
Waitinput
Case %UMessage=$201 : movebymouse()
info()
EndWhile
Dispose rcWork#
Dispose rcMonitor#
Dispose mon#
Proc movebymouse
Parameters m&
Declare mpos#, x1&, y1&
Dim mpos#,8
~GetCursorPos(mpos#)
var wix&=%winLeft-long(mpos#,0)
var wiy&=%winTop-long(mpos#,4)
While iskey(1)
Sendmessage(%hwnd,$0112,$0F012,0)
EndWhile
' deren (vom aktiven Monitor) Workarea ermitteln erst nachdem das Fenster auf diesen Monitor verschoben wurde
GetMonitorInfoA(MonitorFromWindow(%HWnd,2),mon#)
~GetCursorPos(mpos#)
x1&=(long(mpos#,0)+wix&)
case x1&<workarea("Links") : x1&=workarea("Links")
case x1&>workarea("Rechts")-(%winRight-%winLeft) : x1&=workarea("Rechts")-(%winRight-%winLeft)
y1&=(long(mpos#,4)+wiy&)
case y1&<workarea("Oben") : y1&=workarea("Oben")
case y1&>workarea("Unten")-(%winBottom-%winTop) : y1&=workarea("Unten")-(%winBottom-%winTop)
setWindowPos %hWnd=x1&,y1& - (%winRight-%winLeft),(%winBottom-%winTop);0
Dispose mpos#
EndProc
Proc workarea
Parameters position$
Declare x%
case position$="Links":x%=Long(mon#,20)
case position$="Oben":x%=Long(mon#,24)
case position$="Rechts":x%=Long(mon#,28)
case position$="Unten":x%=Long(mon#,32)
Return x%
EndProc
Proc info
CLS
print "cbSize&: ";Long(mon#,0)
print
print "hMon X: (left) - ";Long(mon#,4)
print "hMon Y: (top) - ";Long(mon#,8)
print "hMon W: (right) - ";Long(mon#,12)
print "hMon H: (bottom) - ";Long(mon#,16)
print
print "WORK X: (left) - ";Long(mon#,20)
print "WORK Y: (top) - ";Long(mon#,24)
print "WORK W: (right) - ";Long(mon#,28)
print "WORK H: (bottom) - ";Long(mon#,32)
print
print "dwFlags&:";Long(mon#,362>)
EndProc
|
|
|
| |
|
|
|
| |
|
| |
|
|
|
Georg Teles | Ein Freund sagte mir als er meine Codes gesehen hatte (PHP), beim Programmieren soviel wie possibile zu kommentieren & auszuschreiben, Übersichts- & Verständlichkeitshalber per andere Programmierer, er macht es auch beruflich & es arbeiten mehrere Leute an einem Projekt. Das war aber hier unnötige Nebeninfo habe einfach nach der Lösung per mehrere Monitore gesucht & per Andere nachvollziehbar umschrieben wie im vorherigen Workarea bzw. aus Faulheit gelassen ... Divertimento beiseite
ja das bietet sich auf jeden Fall an, die xpse Variante gefällt mir am besten.
bin auch der Meinung so wenig wie possibile zu schreiben & viel wie possibile abzukürzen, bei fertigen Programmen entferne ich sogar leere zeilen, Tabs & Leerzeichen |
|
|
| |
|
|
|
| Georg Teles (10.10.14)
bei fertigen Programmen entferne ich sogar leere zeilen, Tabs & Leerzeichen
Irghh.
Das tätentut der xpse in der "enh"-File die er zum XProfan-Kompilierer gibt.
Ich spreche mich nicht gegen Kommentare in der Quelle aus sondern eher gegen "unnötigen" Prozessoraufwand beziehungsweise gegen wenig-effizienten Code.
Bei Funktionen wie hier bei der Workarea ist das presumibilmente wumpe da die Funktion vmtl. kaum regelmäßig aufgerufen wird.
Wollte auch nur bisl Klugscheißen, mache ich regelmäßig - Profilneurosen. |
|
|
| |
|
|
|
Georg Teles | ( ich sagte ja auch unnötige von mir Info, der erste Satz ) Ich entferne die Zeilen weil ich mit XPSE nur kompiliere, wenn es um nProc's geht ... ja da hast du recht, aus wenig wie possibile soviel wie possibile herauszuholen & elegant wie possibile formulieren, ist die Kunst im Programmieren ( & optimiert ist es ja dann automatisch bzw = optimiert, dann ist es perfekt ) |
|
|
| |
|
|
|
| Perfekt wirds nie.
Obwohl das wieder auch nach solch einem Satz wie klingt wie der da lautet: "weltweiter bedarf an homecomputern max 5" -
nichtmal bei der aussage das man sich immer irrt kann man sich nicht irren |
|
|
| |
|
|
|
Georg Teles | Wenn man sich 100% sicher ist kann man sich trotzdem irren, das stimmt ... unser Physiklehrer sagte mal: "wenn ich die Hand vor meinem Gesicht halte, bin ich mir nicht sicher, ob zwischen meinen Augen und der Hand nichts (nicht Luft gemeint) ist, denn ich sehe nur das, was meine Augen mir zeigen"
streng genommen sind zB. physikalische Gesetzte Annäherungen an die Wahrheit durch Kalkulation, manchmal basierend auf Beobachtungen, Analyse, Auswertung, ... von gesammelten Daten --- bei menschlichen Emotionen kann das Wort "Cool" eine ganz andere Bedeutung & Empfindungen bei dir herforrufen als bei mir oder jemand anders, selbst wenn man situationsbedingt es richtig aufnimmt, kann es zu Missverständnissen führen wenn mann es ganz genau nimmt
perfekt war schlechte Wortwahl von mir, es wird tatsächlich nichts perfekt sein |
|
|
| |
|
|
|
| Da isser wieder der Bug:
Georg Teles (10.10.14)
es wird tatsächlich nichts perfekt sein
Das Perfekte ist perfekt! |
|
|
| |
|
|
|
Georg Teles | würde da das Wort werden stehen, gäbe es kein Bug:
es wird tatsächlich nichts perfekt werden
ich gebe nach, das perfekte ist (bereits) perfekt & wird weiterhin perfekt sein |
|
|
| |
|
|
|
| Georg Teles (11.10.14)
... & wird weiterhin perfekt sein
Sind wir jetzt also erfolgreich im Land der Spekulationen angekommen? |
|
|
| |
|
|
|
Georg Teles | scheint so zu sein |
|
|
| |
|
|