BGRA MondPhasen - animiert

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Benutzeravatar
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

Beitrag von Winni »

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
Dateianhänge
BGRAmoon.v02.zip
(78.12 KiB) 125-mal heruntergeladen

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: BGRA MondPhasen - animiert

Beitrag von wp_xyz »

Winni hat geschrieben:
Do 13. Mai 2021, 21:00
Läuft hervorragend unter Win7 und Lin64.
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.

Benutzeravatar
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

Beitrag von Winni »

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

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: BGRA MondPhasen - animiert

Beitrag von wp_xyz »

Oh Mann, dann glaub's halt nicht. Ist aber trotzdem so.

Benutzeravatar
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

Beitrag von Winni »

wp_xyz hat geschrieben:
Fr 14. Mai 2021, 00:18
Oh Mann, dann glaub's halt nicht. Ist aber trotzdem so.
Hi!

Für Glauben ist die Kirche zuständig. Oder BaghWahn.

Das steht im Code.

Winni

Benutzeravatar
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

Beitrag von Winni »

Hi!

Gerade kontrolliert:

Reihenfolge:

Code: Alles auswählen

FormCreate
FormResize ( inkl bmp.create)
FormActivate
DrawMoon
DrawMoon
DrawMoon
....
As I said.

Winni

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: BGRA MondPhasen - animiert

Beitrag von wp_xyz »

Bei mir:

Code: Alles auswählen

FormCreate
FormShow
FormActivate
FormPaint
DrawMoon
FormResize
FormPaint
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...

Benutzeravatar
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

Beitrag von Winni »

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

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: BGRA MondPhasen - animiert

Beitrag von wp_xyz »

Winni hat geschrieben:
Fr 14. Mai 2021, 01:53
Dann ist was mit Deinem Lazarus kaputt.
Oje, dann muss auch mein Delphi XE10.3 kaputt sein, denn es zeigt auch das OnResize nach dem OnShow und OnActivate an.
Winni hat geschrieben:
Fr 14. Mai 2021, 01:53
Welche Lazarus-Version? Trunk?
Steht doch oben im Text.

Benutzeravatar
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

Beitrag von Winni »

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
Dateianhänge
BGRAmoon.v03.zip
(78.28 KiB) 120-mal heruntergeladen

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: BGRA MondPhasen - animiert

Beitrag von siro »

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.
BGRAmoonSiro.zip
(79.19 KiB) 121-mal heruntergeladen
Siro

bitte um Bestätigung :wink:
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
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

Beitrag von Winni »

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

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: BGRA MondPhasen - animiert

Beitrag von siro »

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.
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

Benutzeravatar
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

Beitrag von Winni »

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

Socke
Lazarusforum e. V.
Beiträge: 3158
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

Beitrag von Socke »

Winni 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?
Du kannst das ganz einfach zur Laufzeit abfragen: https://wiki.freepascal.org/WindowsVersion/de
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten