| |
|
|
CB | Hi,
la fenêtre venez et allez wieder - zügig, allmählich ou bien gemächlich, je pour besoin. Experimentieren avec Sleep! KompilierenMarqueSéparationGrowingWindow
Autor: Christian Bernfeld
DEF GetSysColor(1) ! "USER32","GetSysColor"
Declare G%,Neutral&,Text1$,Text2$
Neutral& = GetSysColor(15)
WindowStyle 538
WindowTitle "Hoppla - da geht jan Fenster auf ..."
Declare x%,y%,PosX%,PosY%,Xeff%,Yeff%,LX%,LY%
x% = 800
y% = 600
PosX% = (%maxx/2)-(x%/2)
PosY% = (%maxy/2)-(y%/2)
Window 0,0 - 0,0
Cls Neutral&
UseFont "MS Sans Serif",15,0,1,0,0
SetDialogFont 1
Text1$ = @Create("Text",%Hwnd,"Nur eine kleine optische Spielerei",40,40,300,13)
Text1$ = @Create("Text",%Hwnd,"Taste oder Maus zum Beenden...",520,500,240,13)
WhileLoop 1,100
Sleep 5
INC G%
Xeff% = x%*G%/100
Yeff% = y%*G%/100
LX% = (%maxx/2)-(Xeff%/2)
LY% = (%maxy/2)-(Yeff%/2)
setwindowpos %Hwnd = LX%,LY% - Xeff%,Yeff%;0
EndWhile
WaitInput
WhileNot G% = 1
Sleep 1
DEC G%
Xeff% = x%*G%/100
Yeff% = y%*G%/100
LX% = (%maxx/2)-(Xeff%/2)
LY% = (%maxy/2)-(Yeff%/2)
setwindowpos %Hwnd = LX%,LY% - Xeff%,Yeff%;0
EndWhile
Fin
Salut, Christian |
|
|
| |
|
|
|
CB | Hi,
j'ai là encore une variante: cela Fenêtre taucht aus dem rien sur et verschwindet genauso elegant wieder. Basierend sur einer Présentation de Sven Schmidts. KompilierenMarqueSéparationGrowingDisappearingWindow
Autor: Christian Bernfeld
DEF GetSysColor(1) ! "USER32","GetSysColor"
Declare G%,Neutral&,Text1$,Text2$
Neutral& = GetSysColor(15)
Die folgende Prozedur "SetTransparent" wurde von Sven Schmidts veröffentlicht,
ich habe sie nur für meine Zwecke etwas modifiziert
PROFAN²-NT-TEAM-Vorlage
Autor: Sven Schmidts, concept/design
Titel: Transparent Window @ Win2k
Beschreibung: Sorgt für diesen "netten" Effekt; Transparente Fenster unter Windows (>=) 2000
Copyright © 2000-2001 Sven Schmidts, schmidts@cdesign.de
def %LWA_ALPHA $2
def %GWL_EXSTYLE -20
def %WS_EX_LAYERED $80000
def %WS_EX_TRANSPARENT $20
def SetWindowLong(3) !"USER32","SetWindowLongA"
def GetWindowLong(2) !"USER32","GetWindowLongA"
def SetLayeredWindowAttributes(4) !"USER32","SetLayeredWindowAttributes"
Proc SetTransparent
Declare Old&
Parameters Hwnd%, Perc%
Old& = GetWindowLong(Hwnd%,%GWL_EXSTYLE)
SetWindowLong(Hwnd%, %GWL_EXSTYLE, @Or(Old&,%WS_EX_LAYERED));
SetLayeredWindowAttributes(Hwnd%, 0, (255 * Perc%) / 100, %LWA_ALPHA);
EndProc
WindowStyle 538
WindowTitle "Hoppla - da geht jan Fenster auf ..."
Declare x%,y%,PosX%,PosY%,Xeff%,Yeff%,LX%,LY%
x% = 800
y% = 600
PosX% = (%maxx/2)-(x%/2)
PosY% = (%maxy/2)-(y%/2)
Window 0,0 - 0,0 zuerst "neben" den Bildschirm
Cls Neutral&
UseFont "MS Sans Serif",15,0,1,0,0
SetDialogFont 1
Text1$ = @Create("Text",%Hwnd,"Noch so eine kleine optische Spielerei",40,40,300,13)
Text1$ = @Create("Text",%Hwnd,"Taste oder Maus zum Beenden...",520,500,240,13)
***** Variante 1: Abnehmende Transparenz ******
SetTransparent %Hwnd, 0
setwindowpos %Hwnd = PosX%,PosY% - x%,y%;0
WhileLoop 1,100
Sleep 1
SetTransparent %Hwnd, G%
INC G%
EndWhile
***** Oder Variante 2 - beide Methoden kombiniert *****
Voraussetzung für Kombination beider Methoden:
Relativ leistungsstarker PC (v.a. Grafikkarte), sonst ruckelts zu stark
WhileLoop 1,100
Sleep 1
SetTransparent %Hwnd, G%
INC G%
Xeff% = x%*G%/100
Yeff% = y%*G%/100
LX% = (%maxx/2)-(Xeff%/2)
LY% = (%maxy/2)-(Yeff%/2)
setwindowpos %Hwnd = LX%,LY% - Xeff%,Yeff%;0
EndWhile
WaitInput
WhileNot G% = 1
Sleep 1
SetTransparent %Hwnd, G%
DEC G%
Xeff% = x%*G%/100
Yeff% = y%*G%/100
LX% = (%maxx/2)-(Xeff%/2)
LY% = (%maxy/2)-(Yeff%/2)
setwindowpos %Hwnd = LX%,LY% - Xeff%,Yeff%;0 auch hier können beide Methoden kombiniert werden
Fin
Viel Amusement beim Experimentieren Christian |
|
|
| |
|
|
|
| encore ne variante: KompilierenMarqueSéparation {$cleq}
def SetWindowLong(3) !"USER32","SetWindowLongA" :
def GetWindowLong(2) !"USER32","GetWindowLongA"
def SetLayeredWindowAttributes(4) !"USER32","SetLayeredWindowAttributes"
declare i&
buildmainwin
for i&:=0 to 255 step 3 do alpha %hwnd,i&
print "Click" : waitinput
for i&:=255 downto 0 step 3 do alpha %hwnd,i&
end
Proc preparehdl4alpha
Parameters hdl&
SetWindowLong(hdl&, -20, @Or(GetWindowLong(hdl&,-20),$80000));
EndProc
Proc alpha
Parameters hdl&,aval%
SetLayeredWindowAttributes(hdl&, 0, aval%, $2);
EndProc
proc buildmainwin
windowstyle 80 : window 0,0 - 0,0 : preparehdl4alpha %hwnd : alpha %hwnd,0
setwindowpos %hwnd = 0,0 - %maxx,%maxy
cls 0 : showcursor 0
endproc
Salve, iF |
|
|
| |
|
|
|
CB | Hi, iF! Seufz - là sieht on arrêt den Profi am Werk!
Na attends - mon voiture hat aussi déjà gemeint: si je einmal grand suis, werde je un Ferrari! :+D)--
Salut, Christian |
|
|
| |
|
|
|
| alors cela hat doch eh bien wirklich nix avec Profi hin ou bien her trop 1faire - c'est doch wirklich nurn normaler quelly.
Salve, iF |
|
|
| |
|
|
|
CB | était oui aussi nurn :+D)--
mais mir comme cela irrsinnig bien, comment simple manche Dinge avec Deinem genialen XPSE (et XProfan 9) trop verwirklichen sommes. c'est pourquoi -->
Apropos XPSE: chez meinem derzeitigen projet steigt XPSE aus. Im Log venez il seulement jusqu'à Loading, plus passiert pas. Alle anderen Progs, qui je avec cela getestet habe, marcher mais. là je mais toujours certains kleinere faute dans mon Code auszubügeln habe, hat es pour mich momentan pas viel Sinn, den aussi encore avec dem XPSE trop testen. je verspreche Dir mais, si cela Prog fertig ist (cela volonté ensuite so schätzomativ 15000 Zeilen volonté) et Profan2cpp aussi aucun faute plus meldet, Deinen XPSE là ran trop laisser - Du wolltest oui, qui la fois un richtig großer Code getestet wird.
Salut, Christian |
|
|
| |
|
|
|
| je serait mich wirklich freuen trop savons pourquoi xpse aussteigt. peut-être simple la fois Passagen kicken à déterminer woran es liegt.
Grade zum Entwickeln größerer Projekte - et um Flüchtigkeitsfehler trop verringern - ist xpse approprié - car solch faute findet xpse.
Salve, iF |
|
|
| |
|
|
|
CB | Hi, iF!
s'il te plaît encore um quelque chose patience, aussi wenns toi déjà très sous den Fingernägeln brennt - glaub mir, je comprends cela. mon angepeilter Fertigstellungstermin ist Ende février, au plus tard Mitte Mars. je travaille dzt. comment un Pferd daran: depuis plus que 2 Monaten 12 - 14 Stunden et max. 6 Stunden Schlaf - täglich! (sauf am Wochenende, là dreh ego ensuite um). aussi mon (Viel-)Schreiberei im Forum kostet mich viel Zeit. (mach je mais volontiers et aus Überzeugung) seulement: meinen Code runterzustrippen vois je mich derzeit malheureusement wirklich außerstande. Abgesehen en, wärs aussi à peine realisierbar. là hängen soviele Funktionen voneinander ab, qui ensuite gar nix plus marcher serait. je suis froh, si qui Code la fois pas seulement trop 98% funktioniert. Pratiquement-M$-Standard Laß mir encore légèrement Zeit! peut-être löst sich cela Problem avec dem XPSE ensuite de selbst. Ansonsten werde je cela pour Fertigstellung ausgiebig testen et si je selbst pas weiterkomme, schicke je Dir den Code mitsamt dem ganzen Klimbim, qui notwendig ist, avec cela Du dieselbe Testumgebung einrichten peux - hoch et heilig versprochen! (ce sont quelques MB) peut-être gewinne Je l' Sonderpreis pour cela umfangreichste Wettbewerbsprogramm non, aucun Sorge, là hätte je une autre concept, bloß - woher qui Zeit prendre?
Salut, Christian |
|
|
| |
|
|