AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls TAppButton - Application Button like Firefox (experimentell)
Thema durchsuchen
Ansicht
Themen-Optionen

TAppButton - Application Button like Firefox (experimentell)

Ein Thema von Satty67 · begonnen am 23. Okt 2011 · letzter Beitrag vom 3. Jul 2013
Antwort Antwort
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#1

TAppButton - Application Button like Firefox (experimentell)

  Alt 23. Okt 2011, 19:11
Hallo,

übers Wochenende hatte ich Lust, mich an einem Application Button zu versuchen, wie ihn z.B. Firefox anbietet.

Status-Übersicht:
  • Noch experimentell, lange nicht fertig
  • Aktuell klinke ich mich in WindowProc des TrägerForm ein (schien mir am einfachsten), andere Vorschläge willkommen
  • Gezeichnet wird nicht direkt auf NC, sondern in ein Bitmap, dass ich dann kopiere. Ist eine Vorbereitung auf was noch geplant ist, also Absichtlich so umständlich.
  • Windows 7 konnte ich übers WE nicht testen, kann sein das es da noch nicht passt

Noch bekannt Probleme:
  • Flackert beim Resize des Form
  • Ecken noch nicht transparent (lösbar, eine einfache Lösung aber willkommen)
  • Auswerten der Messages in WindowProc noch etwas verwirrend gelöst
  • Button-Optik noch etwas hölzern, passt zwar ganz gut zu XP, aber unter Win 7 sicher nicht so schön.

Ist jetzt einfach nur ein experimenteller Vorschlag, für so einen AppButton. Hatte einach nicht fertiges gefunden.

PS: Falls es sich nicht von selbst erschließt, Anwendungs-Beispiel:
Delphi-Quellcode:
AppButton := TAppButton.Create(self);
AppButton.DropDownMenu := PopupMenu1;
AppButton.Caption := 'Ich bin ein AppButton';
PPS: Warum ich das halbfertig poste: Das Wochenende ist vorbei und weil es nur aus einer Laune heraus entstanden ist, versinkt es sonst wohl im Übungsordner... so wird vieleicht was draus.
Angehängte Grafiken
Dateityp: jpg AppButtonPreview.jpg (52,6 KB, 314x aufgerufen)
Angehängte Dateien
Dateityp: zip AppButtonTest.zip (229,5 KB, 92x aufgerufen)
Dateityp: zip uAppButton_1.1.zip (2,8 KB, 63x aufgerufen)

Geändert von Satty67 (23. Okt 2011 um 19:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 23. Okt 2011, 19:36
Eventuell ist dieser Thread interessant für dich.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 23. Okt 2011, 20:33
Ja, sehr interessant. Muss mir wohl endlich eine Aero-fähige Win 7 Testumgebung anschaffen.

Sieht so aus, als ob man je nach Windowsversion unterschiedlichen Code implementieren muss. Wie das Beispiel weitgehenst innerhalb der Komponente (und nicht im Form) umgesetzt werden kann, wird sicher interessant.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 24. Okt 2011, 06:45
Da war doch mal was ... ist schon länger her ... kram, such, stöber ... ahja, hier. Dort sind vllt ein paar helfende Ideen dabei.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 24. Okt 2011, 15:04
Also die Idee, einfach den Button über die Caption zu "klatschen" kann ich begraben. Beide Links (die Infos darin) und ein Test eben zeigen, dass bei Glass-Frames nicht mehr direkt gezeichnet werden kann.

Firefox scheint das komplette NC-Area selbst zu zeichnen (bei 7.x sogar fehlerhaft), das werde ich wohl auch müssen. Zum einen werde ich anders das Flackern nicht wegbekommen und unter Windows 7 ist es wohl sowieso nötig.

In der Win 7 VM kann ich leider den Glass-Frame nicht aktivieren und das testen. Werde aber trotzdem mal dran machen die verlinkten Beispiele umzusetzen. Werde das erstmal gesplittet nach Windows-Version/Darstellung entwerfen und danach schauen, was sich an Code zusammenwerfen lässt.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#6

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 28. Okt 2011, 19:38
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
Angehängte Dateien
Dateityp: zip AppBtnTest_1.2.zip (225,4 KB, 92x aufgerufen)
  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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Untitled document This thread Refback 25. Okt 2011 15:16

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 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