BGRA MondPhasen - animiert
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Dortmund hat deutlich gegen Red Bull gewonnen. Nun zurück zum Vergnügen.
Grübel, grübel. Da war doch was mit Icons und BGRAbitmap. Und in der Tat hat circular vor ca 1 Jahr Icons implementiert.
Das geht nun so:
BgraBitmap auf BgraIcon auf MemoryStream auf Form.Icon. Wenn der Icon.Canvas so ein Sensibelchen ist, dann wird halt das ganze Icon geladen. Läuft astrein unter Win7 und Lin64. Aber das sagte ich ja schon mehrfach ...
Dem resize-error hab ich ein sleep (Timer.Intervall) spendiert. eine andere Idee hab ich nicht. Humpelt jetzt natürlich beim ändern der Größe.
CP/M86 ?? Wie modern bist Du denn?? Da langt ja wohl 3.0 für den Z80. Handbücher stehen hier irgendwo noch rum. Astreines Betriebssystem. Und weil jeder Hersteller sein eigenes DiskettenFormat hatte, hatt man sehr viel über serielle Leitungen gelernt. Und Kermit mit seinem 1-Byte Protokoll war unser Freund. Mit C, Pascal oder Basic.
BGRAmoon v 0.2 anbei
Schönes langes Wochenende.
Winni
Dortmund hat deutlich gegen Red Bull gewonnen. Nun zurück zum Vergnügen.
Grübel, grübel. Da war doch was mit Icons und BGRAbitmap. Und in der Tat hat circular vor ca 1 Jahr Icons implementiert.
Das geht nun so:
BgraBitmap auf BgraIcon auf MemoryStream auf Form.Icon. Wenn der Icon.Canvas so ein Sensibelchen ist, dann wird halt das ganze Icon geladen. Läuft astrein unter Win7 und Lin64. Aber das sagte ich ja schon mehrfach ...
Dem resize-error hab ich ein sleep (Timer.Intervall) spendiert. eine andere Idee hab ich nicht. Humpelt jetzt natürlich beim ändern der Größe.
CP/M86 ?? Wie modern bist Du denn?? Da langt ja wohl 3.0 für den Z80. Handbücher stehen hier irgendwo noch rum. Astreines Betriebssystem. Und weil jeder Hersteller sein eigenes DiskettenFormat hatte, hatt man sehr viel über serielle Leitungen gelernt. Und Kermit mit seinem 1-Byte Protokoll war unser Freund. Mit C, Pascal oder Basic.
BGRAmoon v 0.2 anbei
Schönes langes Wochenende.
Winni
- Dateianhänge
-
BGRAmoon.v02.zip
- (78.12 KiB) 168-mal heruntergeladen
Re: BGRA MondPhasen - animiert
In der Version von 18:35 und auch in der von 23:17 schmiert Win 7 ab zu Beginn von DrawMoon, weil beim 1.Aufruf von DrawMoon offenbar bmp noch nil ist.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Bei mir schmiert garnix ab unter Win7.
Deine Aussage ist auch Quatsch, weil:
Die bmp wird erzeugt beim resize erzeugt. resize wird unter Windows mindestens zweimal ausgeführt, bevor Form.Create ausgeführt wird. Wenn ich mich recht entsinne, wird es vor Form.activate noch einmal aushgeführt.
Vor activate wird überhaupt kein draw ausgeführt.
Kann also nicht sein.
Viren?
Winni
Bei mir schmiert garnix ab unter Win7.
Deine Aussage ist auch Quatsch, weil:
Die bmp wird erzeugt beim resize erzeugt. resize wird unter Windows mindestens zweimal ausgeführt, bevor Form.Create ausgeführt wird. Wenn ich mich recht entsinne, wird es vor Form.activate noch einmal aushgeführt.
Vor activate wird überhaupt kein draw ausgeführt.
Kann also nicht sein.
Viren?
Winni
Re: BGRA MondPhasen - animiert
Oh Mann, dann glaub's halt nicht. Ist aber trotzdem so.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!wp_xyz hat geschrieben: Fr 14. Mai 2021, 00:18 Oh Mann, dann glaub's halt nicht. Ist aber trotzdem so.
Für Glauben ist die Kirche zuständig. Oder BaghWahn.
Das steht im Code.
Winni
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Gerade kontrolliert:
Reihenfolge:
As I said.
Winni
Gerade kontrolliert:
Reihenfolge:
Code: Alles auswählen
FormCreate
FormResize ( inkl bmp.create)
FormActivate
DrawMoon
DrawMoon
DrawMoon
....
Winni
Re: BGRA MondPhasen - animiert
Bei mir:
DrawMoon vor FormResize - as I said.
Das ist aber mit trunk, mit 2.0.12 funktioniert es. Man sollte sich nie auf die Reihenfolge von Events verlassen...
Code: Alles auswählen
FormCreate
FormShow
FormActivate
FormPaint
DrawMoon
FormResize
FormPaint
Das ist aber mit trunk, mit 2.0.12 funktioniert es. Man sollte sich nie auf die Reihenfolge von Events verlassen...
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Dann ist was mit Deinem Lazarus kaputt.
Die vorgesehene Reihenfolge ist (seit Delphi 1) eine andere,
Wie soll ein Show und ein Activate ausgeführt werden, wenn noch kein resize zur passenden Größe ausgeführt worden ist????
Frühe Delphi- und Lazarus-Versionen hatten sogar noch den Bug, dass resize zweimal vor Form.Create ausgeführt wurde. Das haben sie anscheinend endlich behoben.
Welche Lazarus-Version? Trunk?
Winni
Dann ist was mit Deinem Lazarus kaputt.
Die vorgesehene Reihenfolge ist (seit Delphi 1) eine andere,
Wie soll ein Show und ein Activate ausgeführt werden, wenn noch kein resize zur passenden Größe ausgeführt worden ist????
Frühe Delphi- und Lazarus-Versionen hatten sogar noch den Bug, dass resize zweimal vor Form.Create ausgeführt wurde. Das haben sie anscheinend endlich behoben.
Welche Lazarus-Version? Trunk?
Winni
Re: BGRA MondPhasen - animiert
Oje, dann muss auch mein Delphi XE10.3 kaputt sein, denn es zeigt auch das OnResize nach dem OnShow und OnActivate an.
Steht doch oben im Text.
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Also bei mir sowohl unter Win7 als auch unter Linux:
FormCreate
FormResize
FormActivate
Aber ich hab keine Lust in die Tiefen der LCL abzutauchen.
Statt dessen hab ich das create von bmp nach FormCreate verlagert.
Und zweitens veweigert er das Zeichnen, wenn die bmp nicht assigned ist.
Neue bearbeitete Verison anbei.
Winni
Also bei mir sowohl unter Win7 als auch unter Linux:
FormCreate
FormResize
FormActivate
Aber ich hab keine Lust in die Tiefen der LCL abzutauchen.
Statt dessen hab ich das create von bmp nach FormCreate verlagert.
Und zweitens veweigert er das Zeichnen, wenn die bmp nicht assigned ist.
Neue bearbeitete Verison anbei.
Winni
- Dateianhänge
-
BGRAmoon.v03.zip
- (78.28 KiB) 161-mal heruntergeladen
-
- Beiträge: 761
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: BGRA MondPhasen - animiert
Es gibt noch Probleme,
welche ich meiner Meinung nach nun gelöst habe:
In der Timer Funktion MUSS unbedingt das ProcessMessages raus.
Und hier wird NUR der DrawMoon bearbeitet, KEINE ICONs
Es wird ein 2ter Timer aufs Formular gesetzt und der kümmert sich nur um die ICONs.
Das läuft jetzt richtig rund ohne Hacken.
Habe testweise beide Timer Intervalle sogar auf 1 gesetzt, geht völlig problemlos.
Den 2ten Timer für die Icons muss man relativ hoch setzten damit die ICONs rechtzeitig restauriert werden.
Siro
bitte um Bestätigung
welche ich meiner Meinung nach nun gelöst habe:
In der Timer Funktion MUSS unbedingt das ProcessMessages raus.
Und hier wird NUR der DrawMoon bearbeitet, KEINE ICONs
Es wird ein 2ter Timer aufs Formular gesetzt und der kümmert sich nur um die ICONs.
Das läuft jetzt richtig rund ohne Hacken.
Habe testweise beide Timer Intervalle sogar auf 1 gesetzt, geht völlig problemlos.
Den 2ten Timer für die Icons muss man relativ hoch setzten damit die ICONs rechtzeitig restauriert werden.
Siro
bitte um Bestätigung

Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi!
Im Tiimer ist kein Application. ProcessMessages drin.
Falls Du das im DrawMoon meinst: Das MUSS für Win7 da sein. Sonst gibt's nur Vollmond.
Dabei stellt sich dann die Frage: Gibt es irgenwelche Möglichkeiten per ifdef zwischen Win7 und Win10 zu unterscheiden?
Fragt
Winni
Im Tiimer ist kein Application. ProcessMessages drin.
Falls Du das im DrawMoon meinst: Das MUSS für Win7 da sein. Sonst gibt's nur Vollmond.
Dabei stellt sich dann die Frage: Gibt es irgenwelche Möglichkeiten per ifdef zwischen Win7 und Win10 zu unterscheiden?
Fragt
Winni
-
- Beiträge: 761
- Registriert: Di 23. Aug 2016, 14:25
- OS, Lazarus, FPC: Windows 11
- CPU-Target: 64Bit
- Wohnort: Berlin
Re: BGRA MondPhasen - animiert
Durch die getrennten Timer wird kein "ProcessMessages" mehr benötigt.
Ich bin auch erstaunt und kann bestätigen, das ging vorher nicht...
probier mal meinen Code bitte.
Ich bin auch erstaunt und kann bestätigen, das ging vorher nicht...
probier mal meinen Code bitte.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: BGRA MondPhasen - animiert
Hi Siro!
Läuft problemlos unter Win7 und Linux. Bei voller Geschwindigkeit mit 10ms.
Du solltest Deine Version aber in SpeedMoon umtaufen. Da wird einem ja schwindelig!
Grüße
Winni
Läuft problemlos unter Win7 und Linux. Bei voller Geschwindigkeit mit 10ms.
Du solltest Deine Version aber in SpeedMoon umtaufen. Da wird einem ja schwindelig!
Grüße
Winni
-
- Lazarusforum e. V.
- Beiträge: 3178
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: BGRA MondPhasen - animiert
Du kannst das ganz einfach zur Laufzeit abfragen: https://wiki.freepascal.org/WindowsVersion/deWinni hat geschrieben: Fr 14. Mai 2021, 17:53 Dabei stellt sich dann die Frage: Gibt es irgenwelche Möglichkeiten per ifdef zwischen Win7 und Win10 zu unterscheiden?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein