Hallo,
zuerst mal muss man ja Chris Rolliston für seinen Beitrag (Link von Stevie) dankbar sein. War sicher eine ziemliche Arbeit die ganzen Infos zu sammeln und daraus eine Demo zu bauen. Scheint auch tatsächlich der aktuell gegangene Weg für einen AppButton zu sein (also Titelbar ausblenden und im ClientBereich neu zu zeichnen)
Aber ich wollte den AppButton für eine kleine Multimedia-Anwendung... der Beispielcode ist fest im Mainform integriert, noch nicht für XP/Classic erweitert und trotzdem schon fast umfangreicher, als mein restlicher Projekt-code
Es musste für meinen Fall eine andere, einfache Lösung her...
Zufällig ist mir die Tage beim Zeichnen mit Paint.NET das Verhalten der Tool-Windows ins Auge gestochen. Mir kam also die Idee, ein Toolwindow in den Titlebar-bereich einzublenden. Entweder transparent als TButton-Träger oder einfach direkt das Verhalten eines Button simulierend.
Im Prinzip bekomme ich dadurch einige Vorteile:
- Sollte in allen Windows-versionen gleich funktionieren, u.U. auch Windows 8
- Kann entweder auch direkt einen TButton verwenden oder beim selber zeichnen die Ereignisse der TForm verwenden
- Mit 3 Zeilen Code im MainForm ist der Button einsatzbereit
- Insgesammt war wesentlich weniger Code nötig
- Beim Resize flackert nichts
aber auch kleine Nachteile:
- Bei einigen Testrechnern schwimmt der Button beim Move minimal (laufe ja letztlich hinterher), fällt zum Glück aber nur auf, wenn man darauf achtet
- MainFormOnTaskbar = False;
- und irgend etwas hab' ich sicher übersehen
Windows Vista/7 konnte ich nur kurz testen, ich hoffe es funktioniert trotz einer Arbeiten nach dem Test weiterhin. 64bit hab' ich überhaupt keine Version zum testen parat.
In der Anlage eine kleine Testanwendung, der Source folgt... muss ich aber noch aufräumen