AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Ordnung muss sein (LaunchBar)
Thema durchsuchen
Ansicht
Themen-Optionen

Ordnung muss sein (LaunchBar)

Ein Thema von EWeiss · begonnen am 17. Mai 2017 · letzter Beitrag vom 14. Nov 2021
Antwort Antwort
Seite 2 von 2     12   
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Jun 2017, 14:20
Ja, das funktioniert.

Es gibt noch einen minimalen Grafikfehler, wenn man das erste Mal mit der Maus über das Menü geht (da sieht man verschobene Schrift), aber sonst funktioniert das Kontextmenü dann.
Super dann lade ich die neue Version hoch.
Sorry mit dem minimalen Grafikfehler kann ich leider nichts machen. (bitte nicht wieder diskutieren das ich es nicht will)
Hier auf meinem System kann ich derartiges nicht ausmachen.. Ist einwandfrei.

Hoffe mal das nicht zu viel arges im Code zu finden ist

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Ordnung muss sein (LaunchBar)

  Alt 13. Aug 2018, 18:59
Der Absturz beim Rechtsklick bei Windows 10 kommt von dieser Zeile (uMain.pas Zeile 961):
Das liegt daran, dass WindowFromDC(PDis.HDC) 0 zurückliefert.

Ohne die Zeile wird das Menü angezeigt, allerdings wird der aktuelle Eintrag nach dem Hovern nicht wieder zurückgesetzt, sprich nach einmal Drüberfahren sehen alle gehovert aus.
Für die Leute die es interessiert warum die Menu Einträge verschoben und WindowFromDC 0 zurück liefert.
Es liegt definitiv an Windows. (Windows 7 und Up)

WindowFromDC liefert dann 0 zurück wenn Menu Animationen eingeschaltet sind.. das ist fakt.
Meine Lösung dazu ist bei OwnerDraw Menus diese Temporär auszuschalten wenn sie aktiv sind.

Delphi-Quellcode:
function TSkinEngine.SetMenuAnimation(MenuAnimation: BOOL): Boolean;
begin

  // Bisherige Einstellung ermitteln:
  result := SystemParametersInfo(SPI_GETMENUANIMATION, 0, @FOldSetting, 0);
  if result = false then
    // Result := False;
    // Der abfragende Aufruf war nicht erfolgreich
    exit; // Rückgabewert bleibt False

    // Wert ändern und Erfolg prüfen:
  if Bool(FOldSetting) <> MenuAnimation then
    result := SystemParametersInfo(SPI_SETMENUANIMATION, 0, Pointer(Ord(MenuAnimation)),
      SPIF_SENDCHANGE);
end;
gruss

Geändert von EWeiss (14. Aug 2018 um 02:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Ordnung muss sein (LaunchBar)

  Alt 13. Aug 2018, 20:28
Hallo nochmal, es existiert keine .ini Datei, nirgendwo.
Mit ProcMon komme ich auch nicht so richtig voran, da weiß ich teilweise nicht was der Fehler ist.
Es werden mir total viele Buffer Overflow Fehler in Verbindung beim Auslesen der System-Registrierung gezeigt.
Diese Overflows ziehen sich dann durch bis zum eigentlichen Crash.
So als ob oftmals Programm-Interne Values ein Result nicht aufnehmen können, zu klein oder falscher typ.
Da bei Dir so was nicht passiert werde ich wohl eine Ausnahme sein, kann man halt nichts machen, unter Win7 lief es bei mir gut.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Ordnung muss sein (LaunchBar)

  Alt 13. Aug 2018, 20:34
Dann erstell doch mal im Anwendungspfad ne Ottb.ini
Und knall das hier rein.
Und kopiere diese auch unter AppData

[OTTB Option]
SoundActive=1
ShortCutVisible=1

[Animator]
AnimatorClass=TWinAnimator
Delay=500
AnimationProbability=100

zudem.. Ich starte die Anwendung nicht mit Admin rechten. Also die Verknüpfung im Startmenu.

gruss

Geändert von EWeiss (11. Jul 2019 um 15:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Ordnung muss sein (LaunchBar)

  Alt 13. Aug 2018, 21:03
An .ini scheint es nicht zu liegen, im Programm + Roaming ist nun eine ini mit Inhalt wie Du geschrieben hast, keine Besserung.

Das tritt bei mir an der Stelle auf wo Du Deine Graphic Engine initialisiert und der was Anzeigen soll.
Eine Worker Area seh ich ja ganz kurz gezeichnet, als schwarzes Rechteck über Taskbar.
Das kann bei mir das gleiche Problem sein wie mit dem WatchKit, da seh ich auch nur deinen Kreis, in dem Moment wo der das Fenster zeichnen soll = crash. Da ich netterweiser von Dir noch die D2009 angepasste Version habe, hab ich dazu noch nichts erwähnt.

In Dateieigenschaften war ich nicht drinnen, hab nachgeschaut, da ist alles aus/unselected.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.910 Beiträge
 
Delphi 12 Athens
 
#6

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Aug 2018, 07:54
WindowFromDC liefert dann 0 zurück wenn Menu Animationen eingeschaltet sind.. das ist fakt.
Meine Lösung dazu ist bei OwnerDraw Menus diese Temporär auszuschalten wenn sie aktiv sind.
Um genau zu sein wird für die Menüanimationen ein temporärer DC verwendet, was genau dazu führt, dass nicht immer ein gültiger DC zurückgeliefert wird.

Da jetzt im Quelltext die Funktionen nicht zu finden sind, hast du aber ja offenbar eine bessere Lösung gefunden. Funktionieren tut es jedenfalls auch bei mir unter Windows 10.

Auch wenn mir die schlichter und eleganter aussehenden Standard-Menüs von Windows besser gefallen als dieser bunte in den 90er Jahren im Internet verbreitete "GIF-Stil", Sorry
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Aug 2018, 12:15
Zitat:
Auch wenn mir die schlichter und eleganter aussehenden Standard-Menüs von Windows besser gefallen als dieser bunte in den 90er Jahren im Internet verbreitete "GIF-Stil", Sorry
Kein Problem man kann es nicht jeden recht machen.
Was für mich zählt ist das ich dieses leidige Problem behoben habe.
Es wäre schlecht wenn alle Geschmäcker gleiche wären (so geht es mir mit Win10, Sorry)

gruss

Geändert von EWeiss (14. Aug 2018 um 14:07 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Aug 2018, 13:37
Update..

Debug Version deshalb 2,5MB

Änderungen:
1: Korrektes parsen des EnvironmentPath
2: Wenn keine OTTB.config im Pfad "C:\Users\xxx\AppData\Roaming\BrewIdeas\OTTB\" existiert wird sie angelegt.

Test:
Schaltet von Disable zu Enable Portable App um.
Dann verwendet Restart OverTheTaskBar und seht das Ergebnis.
Anhang gelöscht.

gruss

Geändert von EWeiss (14. Aug 2018 um 17:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Aug 2018, 17:14
Funktionieren tut es jedenfalls auch bei mir unter Windows 10.
Plus Du selbst sind schon mal zwei ^_^

Ich wüsste nicht was ich ändern könnte ausser "Als Admin Starten" und "Nicht als Admin Starten".
Dein Programm verwehre ich nichts, Windows 10 halt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Ordnung muss sein (LaunchBar)

  Alt 14. Aug 2018, 17:18
Funktionieren tut es jedenfalls auch bei mir unter Windows 10.
Plus Du selbst sind schon mal zwei ^_^

Ich wüsste nicht was ich ändern könnte ausser "Als Admin Starten" und "Nicht als Admin Starten".
Dein Programm verwehre ich nichts, Windows 10 halt.
OB es hier um OTTB geht kann ich nicht verifizieren kann sich auch um eine andere Anwendung handeln.
Denn OTTB verwendet kein normales Menu sondern ein PopupWindow.

VPiano verwendet ein normales

gruss

Geändert von EWeiss (14. Aug 2018 um 18:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:

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