Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Einklapp Effekt

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 258
Wohnort: C:\

BeitragVerfasst am: Mo März 17, 2008 5:02 pm    Titel: Einklapp Effekt Antworten mit Zitat

Ich benötige für ein Gui ein Hide-Effect, d.h. das Fenster kann ausgeblendet werden, wenn es am Rand des Bildschirmes hängt und man an den Rand klickt(Wenn jemand Das Programm "Launcher" kennt, weiß er vll. weiß ich meine)



Das ist die Oberfläche von "Launcher". Man kann das Fenster an den Bildschirmrand "docken". Wenn es angedockt ist, wird es durch Klicken an den Rand das GUI so verschoben, dass man es nicht sieht. Bei erneutem Klick auf den Rand wird es durch den Schiebe-Effekt wieder sichtbar. Es wird sozusagen aus dem Fenster rausgeschoben.



Es gab schonmal so ein Schiebe-Script, finde es aber trotz "SuFU" nicht mehr.
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: Mo März 17, 2008 5:55 pm    Titel: Antworten mit Zitat

Forumsuche: DllCall("AnimateWindow"
Nach oben
BoBo¨
Gast





BeitragVerfasst am: Mo März 17, 2008 5:59 pm    Titel: Antworten mit Zitat

[Dock 1.0] by majkinator. Cool
Nach oben
BoBo¨
Gast





BeitragVerfasst am: Mo März 17, 2008 6:01 pm    Titel: Antworten mit Zitat

[How to Animate a GUI Window ?]
Nach oben
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 258
Wohnort: C:\

BeitragVerfasst am: Mo März 17, 2008 6:37 pm    Titel: Antworten mit Zitat

Nicht ganz, BoBo... Sad

1. und 3. Post: Sogenannter FadeIn und FadeOut Effekt
2. Post: Das hab ich auch nicht gemeint...


Ich möchte eher, dass das Gui "aus dem Bildschirm geschoben" wird, aber immer noch existiert(auch keine Transparenz)...


Soll etwa so aussehen:



Nur wird das dadurch aktiviert, dass man auf das Gui einen Doppelklick durchführt...Das würde man per OnMessage machen....

Also, Beim 1. Doppelklick wird es so:

Beim 2. Doppelklick (auf den "Strich" oder eben an den Rand) entfaltet sich das Fenster wieder ...
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
IsNull



Anmeldedatum: 20.12.2006
Beiträge: 914
Wohnort: CH

BeitragVerfasst am: Mo März 17, 2008 9:51 pm    Titel: Antworten mit Zitat

hat nicht AGU mal sowas in der Art gemacht? Dieser Grüne AHK Knopf...hate auch so ein-ausfahr Effekte.... Rolling Eyes .... Shocked ....Mr. Green...wie heist das Teil denn auch?... moment Wink

EDIT:
juppi, gefunden: http://www.autohotkey.com/forum/viewtopic.php?t=6977
_________________

http://securityvision.ch
www.forum.securityvision.ch
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AGU
Gast





BeitragVerfasst am: Mo März 17, 2008 11:30 pm    Titel: Antworten mit Zitat

An den X-GUI habe ich gar nicht mehr gedacht. Wäre hier aber wahrscheinlich Overkill.

Wäre in dem Fall nicht BoBos "Programm über Bildschirmposition" der bessere Ansatz? Abhängig von der Position einfach ein WinMove sollte doch nicht so schwer sein, oder?
Arrow http://de.autohotkey.com/forum/topic25.html

Wenn aber wirklich Overkill gewünscht ist, würde ich mal einen Blick auf SKANs Tipps&Tricks werfen, die BoBo schon verlinkt hat.
Stichwort: [How to Animate a GUI Window ?] weiter oben.
______________________
Gruß AGU
Nach oben
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 258
Wohnort: C:\

BeitragVerfasst am: Mo März 17, 2008 11:31 pm    Titel: Antworten mit Zitat

Ne, das wars leider auch nicht. Vielleicht habe ich mich schlecht ausgedrückt...

Code:

Gui, Add, Text, w200 h200, Drücke F5, um das Gui zu "schließen" und F6, um das Gui zu "öffnen"!
Gui, Show,w200 h200 x0 y0, GUI
Gui, +LastFound
WinGetPos, X, Y
return


Gui, +LastFound
xxx = 0
SetBatchLines, -1


F5:
If xxx = -195
{
SetTimer, F5, Off
}
Else
{
EnvSub, xxx, 5
WinMove, GUI,,%xxx%, %Y%
}
return


F6:
If xxx >= %X%
{
SetTimer, F6, Off
}
Else
{
EnvAdd, xxx, 5
WinMove, GUI,,%xxx%, %Y%
}
return

GuiEscape:
GuiClose:
ExitApp


F5::
SetTimer, F6, Off
SetTimer, F5, 100
return
F6::
SetTimer, F5, Off
SetTimer, F6, 100
return


Probiert dieses Script aus, dann werden es viele verstehen. Bei Klick auf F5 "schließt" sich das Script. Bei F6 öffnet es sich wieder.

Nun möchte ich das irgendwie hinbekommen, dass es schneller geht. Geht so etwas durch einen DllCall oder gibts keine Hoffnung mehr ?


Edit:
Irgendwie versteh ich BoBos "Programm über Bildschirmposition" nicht so ganz. Ich habe die ganzen Variablen angepasst. Jetzt erscheinen solche SplashImages am rechten bildschirmrand, wenn ich mit der Maus an den Rand fahre, aber klicken, um ein Programm oder ähnliches zu öffnen geht irgendwie nicht.
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: Di März 18, 2008 12:35 am    Titel: Antworten mit Zitat

Positionieren/andocken von Gui1 am Bildschirmrand.
Beim Anklicken der Gui1:
wechseln der Gui1-Grafik 'Ausklappen' gegen die Grafik 'Einklappen'.
Fade-In der Gui2
Beim erneuten Anklicken der Gui1:
wechseln der Gui1-Grafik 'Einklappen' gegen die Grafik 'Ausklappen' .
Fade-Out der Gui2
Nach oben
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 258
Wohnort: C:\

BeitragVerfasst am: Di März 18, 2008 12:57 am    Titel: Antworten mit Zitat

Folgendes:

Code:

Title = GUI

Gui, Margin, 0,0
Gui +LastFound
GUI_ID:=WinExist()
Gui, +AlwaysOnTop +Border
Gui, Show, w200 h100 x0 y0 Hide, %Title%
OnMessage(0x202, "WM_LBUTTONUP")

DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x40001")

return




WM_LBUTTONUP(wParam, lParam)
{
  WinGetPos, X, Y,,,%Title%
  If (X = 0) and (Y = 0)
  {
  Gui +LastFound
  GUI_ID:=WinExist()
  DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x50002")
}
Else
ExitApp
}


Das funzt recht gut, habe eine Menge dazugelernt zum Thema OnMessage und DllCalls...jedoch noch 1 kleines Prob:

Code:

  DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x50002")

Diese Zeile sorgt dafür, dass das GUI "verschwindet". Ich hingegen möchte, dass man mit OnMessage das Fenster wieder öffnen und schließen kann. Verbesserungsvorschläge?



Naja, ich geh erstmal ins Bett, hab heut zuviel Zeit mit AHK verbracht...
_________________
mein spontanes ControlSend - Tutorial:

http://de.autohotkey.com/forum/viewtopic.php?p=25173#25173
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
denick



Anmeldedatum: 15.09.2006
Beiträge: 1122
Wohnort: Berlin

BeitragVerfasst am: Di März 18, 2008 8:17 am    Titel: Antworten mit Zitat

Moin,

Zitat:
Ich hingegen möchte, dass man mit OnMessage das Fenster wieder öffnen und schließen kann. Verbesserungsvorschläge?

Kann ich nicht, aber wie wär's damit? Das Fenster öffnet sich, wenn Du mit der Maus auf die entsprechende Randposition (hier links) innerhalb der Fensterhöhe fährst:

Code:
#NoEnv
Fade = 500

Gui, +AlwaysOnTop +ToolWindow -Border
Gui, Margin, 0, 0
Gui, Color, Navy
Gui, Font, s20 cWhite
Gui, Add, Text, Center 0x200 w200 h100, Test
Gui, Show, Hide

Gui, +LastFound
Gui_ID := WinExist()
WinGetPos, WX, WY, WW, WH
WX := 0
WY := (A_ScreenHeight // 2) - (WH // 2)
WinMove, WX, WY
DllCall("AnimateWindow", "UInt", Gui_ID,"Int", Fade, "UInt", "0x40001")

OnMessage(0x202, "WM_LBUTTONUP")
Return

WM_LBUTTONUP(wParam, lParam)
{
   Global
   DllCall("AnimateWindow", "UInt", Gui_ID, "Int", Fade, "UInt", "0x50002")
   SetTimer, WatchMouse, On
}

WatchMouse:
CoordMode, Mouse, Screen
MouseGetPos, MX, MY
If (MX = WX And MY >= WY And MY <= (WY + WH))
{
   DllCall("AnimateWindow", "UInt", Gui_ID,"Int", Fade, "UInt", "0x40001")
   SetTimer, WatchMouse, Off
}
Return

_________________
Hilfe zur Hilfe

(de)nick
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BoBo¨
Gast





BeitragVerfasst am: Di März 18, 2008 10:21 am    Titel: Antworten mit Zitat

Code:
#SingleInstance, Force
Title = GUI

Gui, Margin, 0,0
Gui, -Caption -ToolWindow
Gui, Add, Picture, vDockBar gSlideInOut AltSubmit, DockBar_In.gif
Gui, Show, xm0 ym0 x0 y0 w10 h59, DockBar

Gui, 2:Margin, 0,0
Gui, 2: +LastFound -Caption -Toolwindow
GUI_ID2:=WinExist()
Gui, 2:+AlwaysOnTop +Border
Gui, 2:Show, w200 h59 x9 y0 Hide, %Title%
Return

SlideInOut:
  If FadeStatus := FadeStatus="0x40001" ? 0x50002:0x40001
  If Image := FadeStatus="0x40001" ? "DockBar_Out":"DockBar_In"
  DllCall("AnimateWindow","UInt",GUI_ID2,"Int",1000,"UInt",FadeStatus)
  Sleep, 100
  GuiControl,, DockBar, %Image%.gif
  Return
* *
Nach oben
Dbof



Anmeldedatum: 10.01.2008
Beiträge: 258
Wohnort: C:\

BeitragVerfasst am: Di März 18, 2008 9:01 pm    Titel: Antworten mit Zitat

Sieht ganz brauchbar aus, eure Beiträge. BoBos Script benutze ich nun für ein anderes Script, bedanke mich aber trotzdem dafür.

Code:

Title = GUI

Gui, Color, Black
Gui, Add, Button, x0 y0 w50 h50 , 1
Gui, Add, Button, x50 y0 w50 h50 , 2
Gui, Add, Button, x100 y0 w50 h50 , 3
Gui, Add, Button, x150 y0 w50 h50 , 4
Gui, Add, Button, x200 y0 w50 h50 , 5
Gui, Add, Button, x0 y50 w50 h50 , 6
Gui, Add, Button, x50 y50 w50 h50 , 7
Gui, Add, Button, x100 y50 w50 h50 , 8
Gui, Add, Button, x150 y50 w50 h50 , 9
Gui, Add, Button, x200 y50 w50 h50 , 10


Gui +LastFound
GUI_ID:=WinExist()
Gui, +AlwaysOnTop +Border +Caption +toolwindow

Gui, Show, x0 y0 h100 w250 Hide, %Title%
OnMessage(0x202, "WM_LBUTTONUP")
WinGetPos, WX, WY, WW, WH
WinMove, WX, WY
DllCall("AnimateWindow", "UInt", Gui_ID,"Int", 1000, "UInt", "0x40001")
OP = 0
return

WM_LBUTTONUP()
{
  WinGetPos, X,,,control, %Title%
  If (X = 0)
  {
  Gui +LastFound
  GUI_ID:=WinExist()
  DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x50002")
  Gui, Show, w200 h100 x-197 y%yPos%
  }
Else If X < 0
{
Gui +LastFound
GUI_ID:=WinExist()
Gui, Show, w200 h100 x0 y%yPos% Hide, %Title%
DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x40001")
return
}
return
}


GuiClose:
GuiEscape:
  DllCall("AnimateWindow","UInt",GUI_ID,"Int",1000,"UInt","0x90000")
ExitApp


Hier habe ich eine Test-Gui, um es zu testen. Das Verstecken funzt suuper, aber ein Problem gibt es mit OnMessage. Es erlaubt, dass sich das GUI auch versteckt, wenn ich auf die Buttons klicke. Das macht meine Buttons unbrauchbar.
Ich hätte die Zeile
Code:
WinGetPos, X,,,control, %Title%
am besten erweitert, um zu ermittteln, ob sich unter der Maus ein Control befindet, nur weiß ich nicht genau, wie es sich ins Script einbringen lässt.

Irgendwelche Vorschläge?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de