AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi ImageList Overlay Button

ImageList Overlay Button

Ein Thema von Oliver1983 · begonnen am 2. Sep 2011 · letzter Beitrag vom 10. Dez 2014
Antwort Antwort
Oliver1983

Registriert seit: 8. Mär 2006
Ort: Hamburg
43 Beiträge
 
Delphi XE Starter
 
#1

ImageList Overlay Button

  Alt 2. Sep 2011, 09:22
Hi,

habe nun viel gesucht und gefunden (hier sowie bei Google) aber es klappt alles nicht!!!

Wie kann ich mit Imagelist zwei Icons übereinander legen und dieses dann im Button anzeigen lassen?

Soweit so gut siehe Code, aber leider wird die Transparenz von den Icons nicht beibehalten!
Nur wenn ich ImageList1_icon_64.GetIcon verwende bleibt die Transparenz erhalten, aber da gibt es kein Overlay!

Das ganze soll nachher im Button und im PopupMenü angezeigt werden, mit dem Popupmenü klappt schon aber auch dort keine Transparenz!

Vllt. kann mir jmd dabei Helfen

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  abitmap:TBitMap;
  OverlayIndex: Integer;
  OverlayBildIdx: Integer;
begin
  abitmap:=TBitMap.Create;
  try
    abitmap.Width:=ImageList1_icon_64.Width;
    abitmap.Height:=ImageList1_icon_64.Height;

// abitmap.PixelFormat := pf32Bit;
// abitmap.TransparentMode := tmauto;
// abitmap.Transparent := true;
// abitmap.TransparentColor := clnone;


    OverlayIndex := 0;
    OverlayBildIdx := 1;

    ImageList1_icon_64.Overlay(OverlayBildIdx, OverlayIndex);
    ImageList1_icon_64.DrawOverlay(aBitMap.Canvas,0,0,0,0,true);

    PopupMenu1.Items.Items[0].ImageIndex:=-1;
    PopupMenu1.Items.Items[0].Bitmap:=aBitMap;

    imagelist1_icon_64.Add(abitmap, aBitMap);


    PopupMenu1.Items.Items[0].ImageIndex:=-1;
    PopupMenu1.Items.Items[0].Bitmap:=aBitMap;


    JvImageListViewer1.Images := ImageList1_icon_64;
  finally
    abitmap.Free;
  end;
end;
Oliver
  Mit Zitat antworten Zitat
Steku

Registriert seit: 12. Mai 2008
181 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: ImageList Overlay Button

  Alt 2. Sep 2011, 09:41
Hallo,

kann dir bei deinem aktuellen Problem leider nicht helfen,
kann mich aber ab einen "ähnlichen" Thread erinnern.

Vielleicht hilft es dir irgendwie...

http://www.delphipraxis.net/162556-z...ml#post1120602

Gruß,
Steku
  Mit Zitat antworten Zitat
Benutzerbild von GPRSNerd
GPRSNerd

Registriert seit: 30. Dez 2004
Ort: Ruhrpott
239 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ImageList Overlay Button

  Alt 10. Dez 2014, 12:34
Ich hatte das Problem auch längere Zeit, dass bei dem erzeugten Overlay-Icon die Transparenz fehlte.
Nach ein paar weiteren Versuchen habe ich eine Lösung gefunden, die für mich funktioniert und ein transparentes Overlay-Icon in der Traybar anzeigt: der temporäre Bitmap-Canvas muss zuerst mit einem psClear-Style übermalt werden.

Delphi-Quellcode:
procedure TForm1.CreateOverlayTrayIcon(iBasis, iOverlay: Integer);
var
  aBitmap: TBitMap;
  OverlayIndex: Integer;
begin
  aBitmap := TBitMap.Create;
  try
    //Temp. Bitmap transparent bemalen
    aBitmap.Width := ilOverlayIcons.Width;
    aBitmap.Height := ilOverlayIcons.Height;
    aBitmap.Canvas.Pen.Style := psClear;
    aBitmap.Canvas.Rectangle(0, 0, aBitmap.Width+1, aBitmap.Height+1);

    //Basis und Overlay auf Bitmap zeichnen
    OverlayIndex := 0;
    ilOverlayIcons.Overlay(iOverlay, OverlayIndex);
    ilOverlayIcons.DrawOverlay(aBitmap.Canvas, 0, 0, iBasis, OverlayIndex, True);

    //Bitmap zu Imageliste hinzufügen
    ilTrayIcon.Clear;
    ilTrayIcon.Add(aBitmap, nil);

    //Image in TrayIcon neu zeichnen
    TrayIcon1.IconIndex := -1;
    TrayIcon1.IconIndex := 0;
  finally
    aBitmap.Free;
  end;
end;
Stefan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz