Deutsch
Forum

Geschwindigkeit (hier: SetWindowPos) Interpreter <> Fertige Exe

 

E.T.

Folgendes (Ein- / Ausblenden) läuft im Interpreter völlig sauber, in der Exe "ruckelt" das Ausblenden (CProfan 11.2 & 12ß):
"Minimalbeispiel":

KompilierenMarkierenSeparieren
Declare Static&, A_Button&, E_Button&, Ende_Button&, Schluss%

Proc Einblenden

    Parameters WAS&,Anfang&,Ende&

    WhileLoop Anfang&,Ende&,-1

        SetWindowPos Was& =  0,&loop - %MaxX,100
        sleep 1

    EndWhile

    EnableWindow A_Button&,1
    EnableWindow E_Button&,0

EndProc

Proc Ausblenden

    Parameters WAS&,Anfang&,Ende&

    WhileLoop Anfang&,Ende&

        SetWindowPos Was& =  0,&loop - %MaxX,100
        sleep 1

    EndWhile

    EnableWindow A_Button&,0
    EnableWindow E_Button&,1

EndProc

WindowStyle 64
Window 0,0 - 1,1
CLS @RGB(0,0,0)
SetWindowPos %HWnd = 0,0 - %MaxX,%MaxY
@SetActiveWindow(%HWnd)
Static& = @Control("Dialog","",$54000000,0,Height(%HWnd)-100,@Width(%HWnd), 100,%HWnd,1000,%HInstance,$10000)
A_Button& = @Create("Button",%HWnd,"AUS-blenden",10,10,100,25)
E_Button& = @Create("Button",%HWnd,"EIN-blenden",100,50,100,25)
EnableWindow E_Button&,0
Ende_Button& = @Create("Button",%HWnd,"ENDE",200,100,100,25)
Clear Schluss%

WhileNot Schluss%

    waitinput

    If @Clicked(A_Button&)

        Ausblenden Static&,Height(%HWnd)-100,Height(%HWnd)

    ElseIf @Clicked(E_Button&)

        Einblenden Static&,Height(%HWnd),Height(%HWnd)-100

    ElseIf @Clicked(Ende_Button&)

        Schluss% =1

    EndIf

EndWhile

end
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
19.09.2010  
 



Liegt am Sleep, bei dieser Verwendung würde vlt. ein WaitInput 1 einen "gleicheren" Ablauf liefern.
 
19.09.2010  
 




E.T.
Jo, hilft. Bleibt nur die Frage: Warum kanns der Interpreter "sauber" und die Runtime nicht.
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
19.09.2010  
 



Beide machens schon richtig, bei der Exe hat Windows nur seltener die Chance anzuzeigen. ^^
 
19.09.2010  
 




Andreas
Miethe


Dazu habe ich auch noch einen.
Ich habe Dein Beispiel etwas abgewandelt.
Du kannst hier Richtung und Zeit auch noch angeben, und das beste daran Windows regelt das für Dich.
KompilierenMarkierenSeparieren
 $H windows.ph
Declare Static&, A_Button&, E_Button&, Ende_Button&, Schluss%

Proc Hide

    Parameters wnd&,Time&,Richtung&
    ~AnimateWindow(wnd&,Time&,~AW_SLIDE | ~AW_HIDE | Richtung&)
    EnableWindow A_Button&,0
    EnableWindow E_Button&,1

EndProc

Proc Show

    Parameters wnd&,Time&,Richtung&
    ~AnimateWindow(wnd&,Time&,~AW_SLIDE | Richtung&)
    EnableWindow A_Button&,1
    EnableWindow E_Button&,0

EndProc

Proc Kill

    ~AnimateWindow(%hwnd,500,~AW_HIDE | ~AW_BLEND)

EndProc

WindowStyle 64
Window 0,0 - 1,1
CLS @RGB(0,0,0)
SetWindowPos %HWnd = 0,0 - %MaxX,%MaxY
@SetActiveWindow(%HWnd)
Static& = @Control("Dialog","",$54000000,0,Height(%HWnd)-100,@Width(%HWnd), 100,%HWnd,1000,%HInstance,$10000)
A_Button& = @Create("Button",%HWnd,"AUS-blenden",10,10,100,25)
E_Button& = @Create("Button",%HWnd,"EIN-blenden",100,50,100,25)
EnableWindow E_Button&,0
Ende_Button& = @Create("Button",%HWnd,"ENDE",200,100,100,25)
Clear Schluss%

WhileNot Schluss%

    waitinput

    If @Clicked(A_Button&)

        Hide(Static&,250,~AW_CENTER)'zur Mitte ausblenden
        '        Hide(Static&,250,~AW_HOR_POSITIVE)'nach rechts ausblenden
        '        Hide(Static&,250,~AW_HOR_NEGATIVE)'nach links ausblenden
        '        Hide(Static&,250,~AW_VER_POSITIVE)'nach unten ausblenden
        '        Hide(Static&,250,~AW_VER_NEGATIVE)'nach oben ausblenden

    ElseIf @Clicked(E_Button&)

        Show(Static&,250,~AW_CENTER)'von der Mitte einblenden
        '        Show(Static&,250,~AW_HOR_NEGATIVE)'von rechts einblenden
        '        Show(Static&,250,~AW_HOR_POSITIVE)'von links einblenden
        '        Show(Static&,250,~AW_VER_NEGATIVE)'von unten einblenden
        '        Show(Static&,250,~AW_VER_POSITIVE)'von oben einblenden

    ElseIf @Clicked(Ende_Button&)

        Kill()
        Schluss% =1

    EndIf

EndWhile

end
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
19.09.2010  
 



Sehr cool, an solchen APIs sieht man immer wieder das die Windows-Macher auch für Spaß an der Arbeit Zeit haben müssen.
 
19.09.2010  
 




Andreas
Miethe


Ja, genau !
Für so was haben sie Zeit, statt sich um wichtige Sachen zu kümmern
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
19.09.2010  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.263 Betrachtungen

Unbenanntvor 0 min.
RudiB.07.09.2022
Peter Max Müller09.12.2017
Chregu Mueller22.03.2014
Andreas Miethe24.01.2012
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

iF (3x)
Andreas Miethe (2x)
E.T. (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie