Français
Source/ Codesnippets

Kleine Optische Spielerei

 

CB
Hi,

la fenêtre venez et allez wieder - zügig, allmählich ou bien gemächlich, je pour besoin. Experimentieren avec Sleep!
KompilierenMarqueSéparation
GrowingWindow
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
 
XProfan 8/9.1, Win XP, AMD 64/3200
09.02.2005  
 




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éparation
GrowingDisappearingWindow
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
 
XProfan 8/9.1, Win XP, AMD 64/3200
10.02.2005  
 



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
 
10.02.2005  
 




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
 
XProfan 8/9.1, Win XP, AMD 64/3200
10.02.2005  
 



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
 
10.02.2005  
 




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
 
XProfan 8/9.1, Win XP, AMD 64/3200
10.02.2005  
 



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
 
10.02.2005  
 




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
 
XProfan 8/9.1, Win XP, AMD 64/3200
10.02.2005  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

7.386 Views

Untitledvor 0 min.
Konverter24.03.2024
Walter31.12.2022
p.specht16.12.2020
Marc Bonus22.06.2016
plus...

Themeninformationen

cet Thema hat 2 participant:

CB (5x)
iF (3x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie