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

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 22. Nov 2011, 21:19
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:
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 bin jedenfalls sicher, dass die Probleme zu lösen sind, muss nur noch etwas suchen

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.
Angehängte Dateien
Dateityp: 7z AppButton_2.7.7z (187,5 KB, 124x aufgerufen)

Geändert von Satty67 (23. Nov 2011 um 08:41 Uhr)
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#2

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 5. Jan 2012, 02:00
Hast Du eigentlich noch weiter daran gearbeitet? Wäre schön, eine voll funktionsfähige Komponente zu haben.
  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 5. Jan 2012, 08:37
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.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#4

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 5. Jan 2012, 12:34
ja, hab' zwar leider nur ein Netbook mit Win 7 Starter zum Testen bekommen (hat ja auch kein Aero)
WIe wärs damit?
  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 5. Jan 2012, 12:46
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
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.291 Beiträge
 
Delphi 12 Athens
 
#6

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 3. Jul 2013, 08:26
Ich melde mich heute Abend wieder, wenn ich Zuhause und satt bin
Hi,

wollte mal nachfragen, was an jenem Winterabend so herausgekommen ist Bin nämlich im Moment auch dran, neuere Anwendungen auf Aero Glass umzustellen und so ein Application Button wäre da schick. Ich habe die hier bisher verlinkten Testanwendungen mal durchgespielt unter W7x64 und konnte bis auf den "Fade-In-Effekt" beim Öffnen des Fensters keine Probleme mehr feststellen.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von ralfschwalbe
ralfschwalbe

Registriert seit: 19. Jul 2007
Ort: Lichtenstein/Sachsen
133 Beiträge
 
Delphi XE3 Professional
 
#7

AW: TAppButton - Application Button like Firefox (experimentell)

  Alt 3. Jul 2013, 09:09
Hab grad gesehen, dass der Button unter Windows 8 gar nicht mehr gezeichnet wird...
Ralf Schwalbe
viele Grüße...
  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 06:41 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