Hallo Lazarusgemeinde,
ich bin ja immer noch dabei mein ADS-B Projekt auf Lazarus zu portieren.
Die meisten Probleme habe ich auch schon gelößt.
Nun bin ich beim letzten Problem (Graphik).
Ich zeige ja eine Landkarte auf dem Bildschirm an und wenn ein Flugzeug in der Region fliegt, so lasse ich auch
über die Landkarte ein Flugzeug fliegen.
Das mache ich indem ich ein TImage über die Landkarte lege (Transparent).
Auf der Lazaruskonferenz wurde mir geraten dazu das BGRA Package zu installieren.
Das habe ich gemacht.
Das Drehen des Bitmap um x Grad funktioniert auch einwandfrei.
Aber es gibt noch Probleme wobei ich Eure Hilfe brauche.
1. Man muss ein TBGRABitmap erzeugen, in welchem man dreht.
Das Bitmap wird auch auf dem Bildschirm angezeigt.
Ich will es aber agr nicht sehen. Und eine Eigenschaft Visible gibt es leider nicht.
Wie unterdrücke ich die Anzeige auf dem Bildschirm?
2. Ich drehe das Bitmap und lade es dann in ein File. (SaveToFile).
Das File lade ich anschliessend in mein TImage.
Allerdings obwohl ich die Eigenschaft Transparent im TImage gesetzt habe wird der weisse Flieger und der schwarze Hintergrund
des Bildes angezeigt.
Wenn ich das File Flieger.bmp direkt in das TImage lade ist Transparent aktiv und es wird nur der weisse Flieger angezeigt.
Ist laaes in dem Zipfile enthalten.
Ihr müsst nur in der Procedure BGRAGraphicControl1Redraw den Befehl Image1.Picture.Bitmap.LoadFromFile auskommentieren und
in der Procedure FormShow den Befehl Image1.Picture.Bitmap.LoadFromFile wieder entkommentieren. Oder umgekehrt.
Wie kann man dieses Problem lösen?
3. Die komponente TImage1 soll ja den Flieger anzeigen über der Landkarte.
Wenn ich aber in der Procedure FormShow den Befehl MapView1.Visible:=False; auf True setzte sieht man den TImage nicht mehr.
Auch die Z-Reihenfolge im TImage zu änder (nach vorne) bringt nichts.
Wie kann man den TImage über der Landkarte sichtbar amchen?
Anbei mein Projekt im ZIP-File.
Da Ihr ja nicht meine Datenbank habt müssr Ihr
in der Procedure FormClose den Befehl ZConnection1.Disconnect; auskommentieren
in der Procedure FormCreate den Befehl ZConnection1.Connect; auskommentieren
in der Procedure FormShow den Befehl Laden; auskommentieren
Bin auf Eure Antworten gespannt.
Gruß
Jürgen
BGRA Graphik
- juelin
- Beiträge: 296
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
BGRA Graphik
- Dateianhänge
-
Lazarus.zip
- (331.7 KiB) 72-mal heruntergeladen
Re: BGRA Graphik
Ich beantworte nicht deine Fragen, aber ich wollte darauf hinweisen, dass es mehr oder weniger dasselbe im Rahmen der LazMapViewer-Komponente schon gibt (Beispiel-Projekt flights). Das ist in der aktuellen Version enthalten, die du dir ggfs von https://sourceforge.net/p/lazarus-ccr/s ... mapviewer/ installieren müsstest (im OPM ist noch die alte Version).
- Dateianhänge
-
- flights.png (211.68 KiB) 1969 mal betrachtet
- juelin
- Beiträge: 296
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: BGRA Graphik
Danke für den Hinweis wp_xyz.
Aber es geht nicht nur um die Flugzeuge die angezeigt werden.
Man kann auch (links oder rechts) Klick mit der Maus Funktionen auslösen.
Gruß
Jürgen
Aber es geht nicht nur um die Flugzeuge die angezeigt werden.
Man kann auch (links oder rechts) Klick mit der Maus Funktionen auslösen.
Gruß
Jürgen
Re: BGRA Graphik
Hallo!
Ich habe gerade keine Zeit, den Quelltext genauer anzuschauen, kann aber zumindest zu zwei Punkten etwas kleines beisteuern
Viele Grüße und ein schönes Wochenende!
Ich habe gerade keine Zeit, den Quelltext genauer anzuschauen, kann aber zumindest zu zwei Punkten etwas kleines beisteuern

Hier liegt eventuell ein Missverständnis vor. Ein TBGRABitmap ist erst mal vollkommen Ausgaben-agnostisch und wird nirgendwo ausgegeben. Zeichnest du vielleicht auf einer Komponente? Wie erzeugst du denn das TBGRABitmap? Wenn du es mit TBGRABitmap.Create() erzeugst, wird es nirgendwo angezeigt, kann aber schon verwendet werden. Das mache ich sehr oft so.juelin hat geschrieben: Do 12. Sep 2024, 20:50 Man muss ein TBGRABitmap erzeugen, in welchem man dreht.
Das Bitmap wird auch auf dem Bildschirm angezeigt.
Ich will es aber agr nicht sehen. Und eine Eigenschaft Visible gibt es leider nicht.
Wie unterdrücke ich die Anzeige auf dem Bildschirm?
Das würde ich nicht machen, bleibe beim TBGRABitmap und vermische das nicht mit einem TImage, außer, du weißt, was du tust. Ich vermute, dass da einfach der Alphakanal verloren geht, was die Transparenzprobleme erklären könnte. Hier wird erklärt, wie du ein TGBRABitmap direkt auf die Form (oder einen Panel) zeichnen kannst: https://wiki.freepascal.org/BGRABitmap_tutorial_2juelin hat geschrieben: Do 12. Sep 2024, 20:50 2. Ich drehe das Bitmap und lade es dann in ein File. (SaveToFile).
Das File lade ich anschliessend in mein TImage.
Viele Grüße und ein schönes Wochenende!