TrayIcon->Animate: statt nur zweier Icons, kommt ein leeres icon dazwischen
-
hallo an alle,
nachdem ich nach problemen mit der WinAPI und den dortigen Icon-Funktionen nun das TrayIcon im C++ Builder (Version 5 Prof) gefunden habe (unterm Register "Beispiele"), habe ich das Problem, dass er beim Animieren des Icons zwischen den zweien, die ich der ImageList zugefügt habe, immer noch ein "leeres" icon anzeigt. er soll aber nur zwischen den zweien aus der liste hin und her wechseln.
Ich hatte angenommen, der unterschied verbirgt sich hinter der eigenschaft "hide", aber für beide einstellungen kriege ich dasselbe ergebnis.weiß jemand rat?
der oli
-
Das ist ein Bug, oder ein Feature, je nachdem wie man es sehen will. Der Source sieht folgendermaßen aus:
void __fastcall TTrayComp::OnAnimation(TObject* Sender) { if (IconIndex < FIconList->Count) FIconIndex++; else FIconIndex = 0; SetIconIndex(FIconIndex); Update(); }Mit folgender Änderung funktioniert es:
void __fastcall TTrayComp::OnAnimation(TObject* Sender) { if (IconIndex < FIconList->Count-1) // hier die Änderung FIconIndex++; else FIconIndex = 0; SetIconIndex(FIconIndex); Update(); }Allerdings blinkt dann nichts mehr, wenn nur ein Icon angegeben wird...
Grüße
-
danke Joe_M.!
ist ja echt spannend, was es nicht alles (zu beachten) gibt. ich ändere jetzt also einfach den quellcode in trayicon.cpp und compilier das neu, dann müsste die kompo das richtig machen, sehe ich das richtig?
na ich probier's mal.
danke nochmal und tschüss.
der oli
-
also die modifikation hat geholfen.
vielleicht eine kleine Anleitung für alle, die es interessiert:
Borland c++ Builder 5.0Im Verzeichnis ...\Borland\CBuilder5\Examples\Controls\Source muss man die oben genannte Änderung in der Datei trayicon.cpp[/] vornehmen, dann das package [b]bcbsmp50.bpk öffnen (kann man auch vorher machen) und neu erzeugen. danach hat's bei mir funktioniert! super!
na dann, frohes schaffen!
der oli