AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView Icon Transparenz Problem

Ein Thema von KodeZwerg · begonnen am 21. Okt 2018 · letzter Beitrag vom 22. Okt 2018
Antwort Antwort
tomkupitz
Online

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#1

AW: ListView Icon Transparenz Problem

  Alt 22. Okt 2018, 08:56
Code:
var ImageList: TImageList; //Variable

...

var sfi: TShFileInfo;

ImageList:=TImageList.Create(nil); //erstellen,...
ImageList.Handle:=SHGetFileInfo(PChar(GetWinDir), 0, sfi, sizeof(TShFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON); //Handle zuweisen,...
ImageList.ShareImages:=True; //System-Icons nur nutzen, am Ende aber nicht freigeben,...
ImageList.BkColor:=clNone;
ImageList.BlendColor:=clNone;

...

ListView1.SmallImages:=ImageList; //ListView sagen diese ImageList zu benutzen

...

var sfi: TShFileInfo;

SHGetFileInfo(PChar(FileName), 0, sfi, sizeof(TSHFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON); //IconIndex holen

with ListView1.Items.Add do
begin
  Caption:=ExtractFileName(FileName);
  ...
  ImageIndex:=sfi.iIcon; //IconIndex zuweisen (sfi.iIcon ist Index kein Handle), du sagst ihm, das er Icon Nummer x aus seinen SmallImages also der SystemImageList (ImageList) dem Item zuweisen soll
end;

...

ImageList.Free; //freigeben (aber nur Objektinstanz, Icons nicht)

Geändert von tomkupitz (22. Okt 2018 um 08:59 Uhr)
  Mit Zitat antworten Zitat
tomkupitz
Online

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#2

AW: ListView Icon Transparenz Problem

  Alt 22. Okt 2018, 09:22
Und Beispiel... http://www.screensoft.de/unit1.zip
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: ListView Icon Transparenz Problem

  Alt 22. Okt 2018, 11:04
Ja, der Fehler lag da in meinem Code irgendwo verborgen.
Also Danke nochmal für Deine mühe, nun klappt es wie es soll!!!
Screenshot - 22_10.jpg

Das ärgert mich das ich es mit Deiner Vorlage nicht hinbekommen hatte, aber nun wird alles gut, Dank Dir!

/edit
habe den fehler gefunden
ImageList.Handle:=SHGetFileInfo(PChar(GetWinDir), 0, sfi, sizeof(TShFileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON); //Handle zuweisen,... Vermutlich macht mein GetWinDir etwas anderes als Deins. Gebe ich da den Pfad direkt ein = alles funktioniert, mit meinem GetWinDir() habe ich gar keine Icons.
Gruß vom KodeZwerg

Geändert von KodeZwerg (22. Okt 2018 um 11:10 Uhr)
  Mit Zitat antworten Zitat
tomkupitz
Online

Registriert seit: 26. Jan 2011
355 Beiträge
 
Delphi 12 Athens
 
#4

AW: ListView Icon Transparenz Problem

  Alt 22. Okt 2018, 11:33
Code:
function GetWinDir: string;
var len: DWord;

begin
  len:=MAX_PATH+1;

  SetLength(result, len);

  len:=GetWindowsDirectory(PChar(result), len);

  if len>0 then
    SetLength(result, len)
  else
    RaiseLastOSError;
end;
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ListView Icon Transparenz Problem

  Alt 22. Okt 2018, 11:40
Delphi-Quellcode:
function GetWinDir: string;
var
  dir: array [0..MAX_PATH] of WideChar;
begin
  GetWindowsDirectoryW(dir, MAX_PATH);
  Result := StrPas(dir);
end;
Das war meine... strange das ganze aber nun fruchtet es, ganz herzlichen Dank nochmal für Deine tatkräftige Unterstützung!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz