Italia
Foro

Geschwindigkeit (hier: SetWindowPos) Interpreter <> Fertige Exe

 

E.T.

Folgendes (Ein- / Ausblenden) corre 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

<
s=s4 href='./../../funktionsreferenzen/xprofan/end/'>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 per 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
ass=s4 href='./../../funktionsreferenzen/xprofan/end/'>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 per Divertimento 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  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

2.230 Views

Untitledvor 0 min.
RudiB.07.09.2022
Peter Max Müller09.12.2017
Chregu Mueller22.03.2014
Andreas Miethe24.01.2012
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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