| |
|
|
- Seite 1 - |
|
Georg Hovenbitzer | Hallo zusammen,
ich habe da ein Geschwindigkeitsproblem Mit dem Code lasse ich eine Animation in der Statusleiste anzeigen, nur die läuft nicht gerade schnell ab. Schaut man sich die ANI direkt an, ist sie super schnell. In dem Programm mit der ich die ANI erstellt habe, habe ich die Geschwindigkeit schon ganz hoch gedreht.
Vielleicht kann einer von euch mir helfe. KompilierenMarkierenSeparierenDef Getsyscolor(1) !USER32,GetSysColor
Def Loadimage(6) !USER32,LoadImageA
Declare Ani$,Ani&,AniControl&,Status&,Status#,RECT#
WindowStyle 2 + 8 + 16 + 128 + 256 + 512
Window 0,0-1024,768
Getsyscolor(15)
Ani$ = \Progress_11.ani
Ani& = LoadImage(%hInstance,@Addr(Ani$),2,0,0,$10)
Dim Status#,8
Dim RECT#,16
Long Status#,0 = 984,-1
Status& = @Create(StatusWindow,%hWnd,,2,Status#)
@SendMessage(Status&,$040A,1,RECT#)
AniControl& = @Control(Static,,$50000003,(Long(RECT#,0) + 0),(Long(RECT#,4) + 2),0,0,Status&,0,%hInstance)
WhileNot %Key = 2
WaitInput
@SendMessage(AniControl&,$0170,Ani&,0)
WaitInput
@SendMessage(AniControl&,$0170,0,0)
EndWhile
DeleteObject Ani&
Dispose Status#
Dispose RECT#
End
|
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 16.08.2007 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
Jörg Sellmeyer | Bei mir ists wie bei Frank. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.08.2007 ▲ |
|
|
|
|
| Bei mir ists wie bei Jörg. |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo zusamnen,
ich bin nun etwas verwirrt !! Läuft die Ani Datei im Programm schnell oder langsam ?
Mein Ziel wäre es, die Animation im Programm schneller laufen zu lassen. Als externes Programm zur Anzeige nehme ich immer IrfanView und dort läuft sie sehr schnell. Bei der Erstellung der Animation mit ArtCursors habe ich als Wiedergabegeschwindigkeit 60 Bilder pro Sekunde eingestellt. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 16.08.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Bei mir ists wie bei Georg....
und wie bei Frank...
Irfanview zeigt eine schnelle Animation, im Eigenschaftsdialog und im Programm läuft es langsam. Hast Du Dir schon mal die Animationsbeispile von Andreas Miethe angesehen. Vielleicht hilft Dir da irgendwas weiter. [...] |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.08.2007 ▲ |
|
|
|
|
GDL | Falls ihr den kleinen grünen Balken,der mit Rechtsklick in der Zeitausgabe läuft meint, der braucht für einen Lauf von links nach rechts bei mir ca. 8sec.Sonst ist der kommplette Bildschirm leer.Auch ohne Rechtsklick ist alles Leer,auch die Taskbar.
Servus Georg |
|
|
| |
|
|
|
Jörg Sellmeyer | Jetzt bin ich auch etwas verwirrt. Was meinst Du mit Zeitausgabe? Wieso Rechtsklick?? Wieso Taskbar??? Dein Programm macht doch nichts rechtsklickspezifisches. Ich sehe rechts unten in der Statusbar nach beliebiger Eingabe (Maus/Tastatur) die Animation. Auch bei mir dauert sie ca.6-8 sec (nur gezählt, des halb Schätzwert) Unter Irfanview ist die Animation tatsächlich schneller. Vielleicht kann man mit einer Message dem Control noch mitteilen wie schnell die Ani laufen soll. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 16.08.2007 ▲ |
|
|
|
|
Rolf Koch | Nichts rein garnichts zu sehen. Alles in einem Pfad. |
|
|
| |
|
|
|
Michael Wodrich | |
|
| Programmieren, das spannendste Detektivspiel der Welt. | 16.08.2007 ▲ |
|
|
|
|
Rolf Koch | *lol* Michael stimmt war mal wieder zu schnell Also wenn ich es unter Roc als animiertes Icon lade, bleibt die Geschwindigkeit genau die selbe wie hier im Beispielprogramm. Wird wohl so sein, wie es Jörg beschrieben hat. Die Framedauer wird in einem zu erstellenden Ani eigentlich ja fix angegeben. |
|
|
| |
|
|
|
Michael Wodrich | Findet alles in der ComCtrl.DLL statt. Der Prozess-Monitor hilft da leider auch nicht weiter.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 17.08.2007 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
GDL | Hallo Jörg,
bin der GDL Georg und nicht der Georg H.
Bei mir bleibt der Bildschirm solange Leer bis ich ganz unten rechts, wo die Uhrzeit angezeigt wird, mit der Maus rechtsklicke. Solange ich den Mausbutton gedrückt halte läuft der grüne Balken mit ca. 8 sec Dauer durch. Sobald ich den Mausbutton loslasse ist alles wieder weg.
Servus GDL Georg |
|
|
| |
|
|
|
Georg Hovenbitzer | Ich muss mich entschuldigen, habe ganz vergessen zu sagen wie man das Demo steuert. Einfach mit der linken Maustaste in das geöffnete Fenster klicken, nach dem man die ANI Datei in das Verzeichnis des Quellcodes gelegt hat und im zweiten Feld der Statusbar erscheint die Animation. Bei einem weiteren Klick wir sie deaktiviert.
Unter ROC läuft die Animation so wie in meiner Demo. Bei der Erstellung der Datei habe ich angegeben das ein Frame in 1/60 einer Sekunde abgespielt wird. Die ganze ANI 11 hat 113 Frames und sollte in ca. 2 Sekunden einmal durchgelaufen sein.
Anbei mal ein Code den ich hier gefunden habe, wo die ANI als Cursor geladen wird und dort läuft sie schnell !!!!! KompilierenMarkierenSeparierenDef APILoadCursorFromFile(1) ! USER32,LoadCursorFromFileA
Def APISetCursor(1) ! USER32,SetCursor
Def APISetCursorPos(2) ! USER32,SetCursorPos
Def ApiSetClassLong(3) !user32,SetClassLongA
Declare hcur#,ende%,name$
Declare hc&,hcold&,curdef&
Let Name$ = @LoadFile$(Lade Animationsdatei,*.ani)
Case equ$(name$,):end
Dim hcur#,len(name$) + 1
String hcur#,0=name$
Let hc&=APILoadCursorFromFile(hcur#)Cursor laden -> entweder *.ANI oder *.CUR oder *.ICO
Windowstyle 272
WindowTitle Ende mit rechter Maustaste im Fenster.....
window 10,10-400,200
APISetCursorPos(100,100)Den Cursor ins Fenster setzen
Let hcold&=APISetCursor(hc&)Den Standard-Cursor sichern !
ApiSetClassLong(%HWND,-12,hc&)Cursor für das Hauptfenster wechseln
Wenn CONTROLS erzeugt werden, kann jedem
Controlstil ein eigener Cursor zugewiesen werden !
Declare Static&
Static& = @Control(Static,,$50000003,50,50,0,0,%hWnd,0,%hInstance)
@SendMessage(Static&,$0170,hc&,0)
whilenot ende%
Getmessage
IF @Equ(%Message,$0204)rechte Maustaste gedrückt ?
ApiSetClassLong(%hwnd,-12,hcold&)System-Standard-Cursor zurückschreiben
Dispose hcur#
Let ende%=1
Endif
Wend
End
|
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 17.08.2007 ▲ |
|
|
|