Entwickler-Ecke

Windows API - transparente icons


Chatfix - Mi 13.11.02 18:18
Titel: transparente icons
hi, nach dem tip mit dem windows forum bin ich fündig geworden

ich abe jetz folgenden code:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
hlv : THandle;

procedure TForm1.GetDesktopListViewHandle;
var
  s1: string;
begin
  Try
    hLV := FindWindow('ProgMan', nil);
    hLV := GetWindow(hLV, GW_CHILD);
    hLV := GetWindow(hLV, GW_CHILD);
    SetLength(s1, 40);
    GetClassName(hLV, PChar(s1), 39);
  Except End;
end;


Nun soll ich den API-Befehl

ListView_SetTextBkColor(hLV, $FFFFFFFF); //$FFFFFFFF-->Transparent

aufrufen, doch delphi bringt folgenden fehler:

[Fehler] Unit1.pas(116): Undefinierter Bezeichner: 'ListView_SetTextBkColor'

ich habe mich noch nicht so mit API beschäftigt, kann mir jetz jemand helfen?


Delete - Mi 13.11.02 19:17

Der Listview gehört zu den Common Controls, ergo mußt du CommCtrl mit in den Uses aufnehmen.

#Und Berichte mal ob es fgnktioniert.


Chatfix - Mi 13.11.02 19:42

also der fehler ist jetzt weg..

ob das mit den transparenten icons funzt teste ich morgen, da ich z.Z. Win XP anhabe.

aber falls du den code verwendest, musst du dein programm immer laufen lassen und abundzu den befehl aufrufen, denn beim desktop-aktualisieren setzt windows die standard-farbe wieder...


Delete - Mi 13.11.02 20:38

Chatfix hat folgendes geschrieben:

aber falls du den code verwendest, musst du dein programm immer laufen lassen und abundzu den befehl aufrufen, denn beim desktop-aktualisieren setzt windows die standard-farbe wieder...

Das werde ich unter Garantie nicht machen.


Chatfix - Mi 13.11.02 21:21

naja dan halt nicht *ggg*

was meonst du eigentlich, das du den code nciht nimmst, oder das du das rogramm nciht laufen lässt?

da ich einen wallpaper-manager programmieren (will) bleibt der ja eigentlich so und so immer an, da er ja die wallpaper wechseln soll


Delete - Mi 13.11.02 21:32

Ich werde doch für so ein Gimmick nicht andauernd im Hintergrund ein programm laufen lassen.


Terra23 - So 27.04.03 22:35

@Chatfix: Sieh doch mal unter http://www.fileworks.de nach. Da gibt es das Programm Transparent Icons, daß schiebst du in den Autostart, es schaltet sich in die Tray und aktualisiert sich, sobald der Desktop geändert wird. Mir fällt gerade ein, ob das Wallpaper geändert wird, benutze ich in meinem Tool auch. Ich mache das so:

Mein Programm liest beim Start aus der Registry den Wallpaper-Key in eine Variable und ein Timer überprüft ständig, ob sich dieser Key geändert hat.