![]() |
AW: TAppButton - Application Button like Firefox (experimentell)
Beim Umstieg von XP auf Vista oder 7 wirst Du ein "beeindruckendes Erlebnis" haben oder eine "beeindruckende Erfahrung" machen!
Quasi nix funktioniert mehr wie zuvor. Viel Spaß ohne Backup! Sei gewarnt... GG |
AW: TAppButton - Application Button like Firefox (experimentell)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
habe gerade die Demo ausprobiert. Wenn ich das Fenster nehme und wild über den Bildschirm ziehe rutscht irgendwann der Button hinters Fenster (siehe Screenshot). Nach einem Focuswechsel stimmt dann wieder alles. Gruß xaromz |
AW: TAppButton - Application Button like Firefox (experimentell)
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich hab noch etwas gefunden. Wenn man das Fenster mit dem Maximierungs-Button maximiert und dann mit einem doppelklick auf die Titelbar minimiert, wird der button nicht neu gezeichnt. Siehe Screen. Um das zu vermeiden, sollte der Button in Aero nicht größer als die Boder-Icons sein. Halt so wie im Firefox selbst. Und toll wäre es, wenn der Button unter Vista/7 noch den weißen Rand und den DropDown Arrow hätte. Dann sähe er Perfekt aus. Hast du schon eine Idee, wenn er dann fertig ist, unter welcher Lizenz du ihn laufen lässt? MPL wäre toll. Bitte nicht GPL. :) |
AW: TAppButton - Application Button like Firefox (experimentell)
Also viele der beschriebenen Probleme hab' ich mir mit der "Optimierung" am Ende eingebrockt . Also Enfernen der behandelten Ereignisse, die scheinbar nicht gebraucht werden. Dadurch wird jetzt an vielen Stellen nicht neu gezeichnet, wo es sollte.
Die Probleme bei Minimize/Restore und Maximize konnte ich schon durch wieder reinnehmen einiger Ereignisse abfangen. Muss vorsichtig wieder etws Intelligenz dahinter bauen, um nicht zu viel sinnlos neu zu zeichnen. Andere Probleme sind aber etwas schwieriger zu lösen, vor allem Vista/Win7 wird mühsam, weil ich unter XP entwickele. Aber ich klemme mich dahinter... kann im Moment aber nur am Wochenende voll ran. Optische Anpassungen und Umstellung auf eine Paletten-Komponente kommen zum Schluss. Zitat:
Keine Lizenz, keine Beschränkungen, frei verfügbar. Jeder kann den Code verwenden wie er möchte. |
AW: TAppButton - Application Button like Firefox (experimentell)
Da der AppButton von Dir/satty67 wirklich eine schöne Spielerei ist, habe ich für das in #16 gepostete "Projekt" ein wenig in der unit uAppButton 2.5 herumgepfuscht. Die Änderungen sind mit //Gustav kenntlich gemacht :shock:
Delphi-Quellcode:
procedure TAppButton.MainFormWndProc(var Message: TMessage);
begin if Assigned(fMainFormWndProc) then fMainFormWndProc(Message); case Message.Msg of WM_MOVE, WM_MOVING: begin MoveButtonWindow(True); end; WM_STYLECHANGED, WM_SETTINGCHANGE: begin Color := Color; Invalidate; end; WM_SYSCOMMAND: begin if (Message.WParam = SC_MAXIMIZE) or (Message.WParam = SC_RESTORE) then begin //Gustav Visible := true; //Gustav Invalidate; end; //Gustav if (Message.WParam = SC_MINIMIZE) then Visible := false; //Gustac end; WM_NCACTIVATE {, WM_ACTIVATE, WM_SHOWWINDOW, WM_EXITSIZEMOVE}: begin Visible := true; //Gustav Invalidate; end; WM_NCCALCSIZE: begin if fOSStyle = absClassic then Invalidate; end; end; end; Unter Vista klappt es damit ganz gut, beim Klicken auf "Minimieren" bleibt der deaktivierte AppButten nicht mehr auf dem Desktop hängen :thumb: Klar, weil ich ihn verschwinden lasse :oops: Irgendwelche sonstigen Verhaltenweisen/Eigenschaften des AppButtons habe ich NICHT durchgetestet! Ergänzung/Nachtrag zu meinem Post #19: Zitat: "Starte ich meine Demo (unter Vista) über eine Desktop-Verknüpfung mit der Eigenschaft "maximiert", so erscheint der AppButton an "poDesigned" anstatt links oben in der Ecke. Erst beim Drüberfahren mit der Maus huscht er nach links oben." Nachtrag dazu: Der AppButton ist links bereits an der richtigen Position, nur eben nicht oben in der Ecke! Sondern bei "poDesigned". Vermutlich klappt da was bei TAppButton.MoveButtonWindow bei der Positionsberechnung nicht so ganz? Null Ahnung meinerseits! Aber vielleicht hilft's ja Dir/satty67 für das nächste Update? LG Gustav |
AW: TAppButton - Application Button like Firefox (experimentell)
Liste der Anhänge anzeigen (Anzahl: 1)
Du hast in die gleiche Richtung gedacht wie ich ;) Etwas hab' ich unter der Woche auch schon geschafft, kann aber erst am WE richtig ran und testen. Kleiner SuperGau: dachte ich kann mit Delphi7PE am Win7 Rechner direkt testen, aber ApplicationOnTaskbar schein das Cerhalten (weitergereichte Ereignisse) auch wieder zu ändern.
Das Problem mit dem an falscher Position hängenden Button (bei diversen Maximize Aktionen), liegt nicht an einer falschen Berechnung, sondern an einer fehlenden Aktualisierung. Da hab' ich zuvor entfernte Messages wieder zum Behandeln reingenommen. Überhaupt hab' ich mal neu organisiert. Zum hängenden Button bei animiertem Mini/Maximize hatte ich die gleiche Idee wie Du. Einfach das Teil vorher ausblenden (allerdings nicht Visible direkt ändern, falls der unsichbar war, sollte er es bleiben). Hab' es in einem ersten Ansatz etwas anders gelöst. Konnte aber noch nicht wirklich testen... unter XP läuft es leider fast immer sehr gut...
Delphi-Quellcode:
Ich bin jedenfalls sicher, dass die Probleme zu lösen sind, muss nur noch etwas suchen ;)
procedure TAppButton.MainFormWndProc(var Message: TMessage);
var R : TRect; begin case Message.Msg of WM_SYSCOMMAND: begin if (Message.WParam = SC_MINIMIZE) then ShowWindow(fHandle, SW_HIDE); end; end; if Assigned(fMainFormWndProc) then fMainFormWndProc(Message); case Message.Msg of WM_MOVE, WM_MOVING, WM_SIZe, WM_SIZING, WM_EXITSIZEMOVE, WM_NCPAINT: begin MoveButtonWindow(True); end; WM_STYLECHANGED, WM_SETTINGCHANGE: begin Color := Color; Invalidate; end; WM_ACTIVATE: begin Invalidate; end; WM_NCCALCSIZE: begin R := ButtonRect; if (not fOptimizeUpdates) or (fLastPainted.X <> R.Left) or (fLastPainted.Y <> R.Top) then Invalidate; end; WM_SYSCOMMAND: begin if fVisible and ((Message.WParam = SC_RESTORE) or (Message.WParam = SC_MAXIMIZE)) then begin ShowWindow(fHandle, SW_SHOW); fMainForm.SetFocus; end; end; end; end; Ich poste gleich die ganze Unit nochmal, und die Exe zum Testen... €: Heute morgen kurz am Win7 PC getestet, funktioniert nicht richtig! Ich bekomme zum WE ein Win7 Notebook. Dann kann ich das direkt testen. Immer ändern und später probieren hat kein Wert, so komme ich nicht weiter. Verschiebe das Problem jetzt erstmal, bis ich mit D2007 direkt auf Win7 entwickeln kann. |
AW: TAppButton - Application Button like Firefox (experimentell)
Hast Du eigentlich noch weiter daran gearbeitet? Wäre schön, eine voll funktionsfähige Komponente zu haben. :)
|
AW: TAppButton - Application Button like Firefox (experimentell)
Hallo,
ja, hab' zwar leider nur ein Netbook mit Win 7 Starter zum Testen bekommen (hat ja auch kein Aero), aber konnte zumindest in der Testumgebung einiges ausmerzen. Aktuell hab' ich noch ein Problem drin, dass ich noch nicht innerhalb der Komponente, sondern nur im Hauptfenster lösen kann. Wird im MainForm.Create das Fenster maximiert (z.B. Laden der Einstellungen), wird das durch TAppButton auf halben Weg unterbrochen mit entsprechend falschem Verhalten des Fensters. Ich erzeuge den AppButton einfach nach solchen Aktionen, statt davor. Hatte dann Urlaub und das Projekt ganz vergessen ;-) Ich poste heute Abend, wenn ich Zuhause bin, den aktuellen Source-Code. Evtl. fällt mir bis dahin ein, wie ich das oben beschiebene Problem noch ausmerzen kann. |
AW: TAppButton - Application Button like Firefox (experimentell)
Zitat:
![]() |
AW: TAppButton - Application Button like Firefox (experimentell)
Hmm, Starter steht zwar nicht dabei, aber probiere ich heute Abend mal aus. Könnte auch 75 € für's AnyTimeUpgrade investieren, aber nur wegen Aero und ein paar Einstellungen ist mir das zu viel.
Also die meisten Probleme machten Aero bzw. GlassFrame. Kann das ja leider nur umständlich testen, aber vieleicht habe ich ja alles erwischt, was falsch lief. Ich melde mich heute Abend wieder, wenn ich Zuhause und satt bin ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:20 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