ovl_Icons

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
wennerer
Beiträge: 609
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

ovl_Icons

Beitrag von wennerer »

Hallo,
obwohl ich als Hobby-Programmierer mein Lazarus in etwas größeren Zeitabständen aktualisiere (benutze noch eine Stable von Nov.2023), hole ich mir die Icons die uns
"Ally" bereit stellt gerne auch mal zwischen durch direkt von gitlab.

Siehe:
viewtopic.php?p=128296#p128296

Mir sind da nun Icons aufgefallen die alle mit ovl_ beginnen und deren Bild ist immer in der rechten unteren Ecke. Weiß jemand für was man die nimmt?
ovl.png
ovl.png (43.16 KiB) 2858 mal betrachtet
PS: Man kann es nicht oft genug schreiben: Vielen Dank an Ally für diese wunderbare Sammlung!

Viele Grüße
Bernd

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: ovl_Icons

Beitrag von m.fuchs »

Ich vermute mal dass ovl für Overlay steht und du die über andere Icons legen kannst um sie zu kombinieren. Das passt ja dann auch damit, dass sie nur einen kleinen Bereich einnehmen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

wennerer
Beiträge: 609
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: ovl_Icons

Beitrag von wennerer »

Hallo Michael,
danke für die Antwort. Schadet nicht wenn man mal dumm fragt :D , auf die Idee wäre ich nicht gekommen. Probiere ich aber demnächst mal aus.

Viele Grüße
Bernd

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1648
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ovl_Icons

Beitrag von fliegermichl »

Das würde mich jetzt auch mal interessieren. Weil meine Funktion von hier würde damit die andere Grafik komplett übermalen.

Benutzeravatar
Ally
Beiträge: 283
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: ovl_Icons

Beitrag von Ally »

PS: Man kann es nicht oft genug schreiben: Vielen Dank an Ally für diese wunderbare Sammlung!
Hallo Bernd, das freut mich natürlich sehr. :D :D :D

Und wie m.fuchs schon geschrieben hat, sind die Icons in erster Linie dazu gedacht als Overlay mit anderen Icons kombiniert zu werden.
Das kann man z.B. mit Gimp ganz gut bewerkstelligen.

Im Anhang findest du auch ein kleines Demo-Programm mit dem man das auch machen kann.
Mit einem Klick auf Load öffnen sich nacheinander zwei Datei-Öffnen-Dialoge. Im ersten wählt man das Hintergrund-Icon aus und im zweiten das Overlay.
Mit den SpinEdit's kann das Overlay positioniert werden und mit Save speichert man das Ganze.

@fliegermichl
Das Demo-Programm beinhaltet die Unit rhsBitmapAdd.pas, die auch mit Transparenz umgehen kann.
Dateianhänge
rhsBitmapAddTest.zip
(52.66 KiB) 40-mal heruntergeladen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1648
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: ovl_Icons

Beitrag von fliegermichl »

@Ally Danke für den Beitrag. Das löst auch mein Problemchen aus dem anderen Thread direkt.

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

Re: ovl_Icons

Beitrag von wp_xyz »

Ally war schneller, während ich noch an meinen Demos gebastelt habe...

Denoch will ich das folgende schreiben, denn die Overlays sind schlecht dokumentiert.

Das einzige Control, das meines Wissens Overlayicons direkt unterstützt, ist der TreeView. Er hat ein wenig bekanntes Property, OverlayIndex, in dem man direkt den Index des Icons aus der zugeordneten ImageList eintragen kann, das als Overlay zu dem normalen Icon (ImageIndex/SelectedIndex) verwendet werden soll. (--> Anhang "imagelist_overlays_treeview").

Das andere Demo ("imagelist_overlays") zeigt, wie man selbst Overlays aus der ImageList zeichnen kann. Es gibt dafür eine Methode DrawOverlay(ACanvas: TCanvas; AX, AY, AIndex: Integer; AOverlay: TOverlay; AEnabled: Boolean = True). Das zeichnet das Icon mit Index AIndex am Ort AX/AY des Canvas und das Overlay mit Index AOverlay darüber. Aber leider ist das etwas komplizierter, denn der Overlayindex AOverlay hat nichts mit den Indices in der ImageList zu tun, sondern muss erst durch Aufruf der Prozedur procedure Overlay(AIndex: Integer; Overlay: TOverlay) einem ImageListenindex zugeordnet werden. Und besonders hässlich: für TOverlay sind nur Werte zwischen 0 und 14 erlaubt (bei Delphi sogar nur 0..3).
Dateianhänge
imagelist_overlays.zip
(8.1 KiB) 34-mal heruntergeladen
imagelist_overlays_treeview.zip
(8.4 KiB) 36-mal heruntergeladen

wennerer
Beiträge: 609
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: ovl_Icons

Beitrag von wennerer »

Hallo zusammen,
@Ally und WP: herzlichen Dank für die Demo-Projekte und die Erklärungen. Ich habe da schon gleich einige Ideen wo ich das gut gebrauchen kann.

Für alle die sich die Demos von wp_xyz runterladen. Die Namen der Projekte sind vertauscht. Wer das Beispiel mit der TreeView haben möchte muss das Andere nehmen und umgedreht. Aber am Besten holt man sich eh gleich beides.

Und das sich nebenbei noch eine Lösung für fliegermichl ergeben hat freut mich auch sehr. Unglaublich was aus einer scheinbar banalen Frage alles an Infos rüber kommt.

Viele Grüße
Bernd

Antworten