AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

10.3.1: OnActivate wird vor OnCreate ausgeführt

Ein Thema von Bbommel · begonnen am 21. Mär 2019 · letzter Beitrag vom 26. Mär 2019
Antwort Antwort
Seite 5 von 8   « Erste     345 67     Letzte »    
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#41

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 23. Mär 2019, 19:01
Danke für die Demo.

Zitat:
(Erstellt mit D6.. )
412 KiB kompilierter Quellcode, in seiner reinsten Form

Sieht gut und verständlich aus. Vom Prinzip her genau wie mein OnPaint-Ansatz, nur dass du mit deiner Umsetzung keine nervige Variable brauchst, um dir den Status zu merken.
Hat Vorteile die nicht mehr zu haben finde ich.

Geändert von DieDolly (23. Mär 2019 um 19:03 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#42

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 23. Mär 2019, 19:16
Hmm..

Kannst das Test-Tool ja mal gegen deine VMs testen und sehen, wann dort das 'AfterShow' kommt.
Eventuell eine bessere Alternative, wenn das OnActivate kommt, wann es will
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#43

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 23. Mär 2019, 19:24
Verstehe nicht was du damit sagen möchtest?
Ist es OS-abhängig, ob dein Ansatz funktioniert oder nicht?


Edit spät in der Nacht
einen Nachteil habe ich wohl gefunden. Wenn man ein Programm mit diesem Mechanismus ins Systemtray minimiert und zurückholt, wird DoAfterShow trotzdem wieder ausgeführt.
Um eine Zwischenvariable kommt man also in beiden Fällen nicht drumherum. Außer man minimiert das Programm niemals in den Systemtray.

Geändert von DieDolly (23. Mär 2019 um 23:23 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#44

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 23. Mär 2019, 23:42
Hmm..

Also, wenn ich meine D6 Applikation minimiere und dann wieder hochhole wird bei mir nur OnPaint aufgerufen, jedoch kein OnShow und somit kein AfterShow.
(Windows 8.1 64Bit auf Notebook)

Ich dachte es geht um OnActivate VOR OnShow?
Es sollte doch in der VM falsch sein...

Teste mal mit meinem Tool, ob auch dort AfterShow vor OnCreate kommt...
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#45

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 23. Mär 2019, 23:57
Zitat:
Es sollte doch in der VM falsch sein...
In zwei VMs konnte ich das nicht richtig nachvollziehen. Getestet aber leider nur unter Windows XP und 7.
Ich habe dort dieselben Ergebnisse bekommen wie unter dem Windows 10 Host.

Zitat:
Teste mal mit meinem Tool, ob auch dort AfterShow vor OnCreate kommt...
Windows 10 Host, Windows XP und 7 Gast alles wie es sein soll. Vielleicht doch ein Delphi-Problem (was es bei D6 noch nicht gab) und weniger Windows?

Zum Minimieren:
ich meine zum Systemtray, also komplett weg aus der Taskleiste und nur noch ein kleines Icon im Statusbereich.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#46

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 24. Mär 2019, 10:27
Vielleicht doch ein Delphi-Problem (was es bei D6 noch nicht gab) und weniger Windows?
Spielt eigentlich keine Rolle. Wenn es wirklich an der Windows-Version (und vermutlich einem Haufen anderer Bedingungen für das System) liegt, dann kann man das ja in Delphi abfangen und passend lösen. Dazu müsste man es aber halt schon reproduzieren können. Leider genügte keine der bisherigen Beschreibungen dieser Anforderung.

Der Hinweis auf das SetFocusControl und die DPI Umrechnung ist ja durchaus hilfreich. Ohne einen reproduzierbaren Testfall ist es aber nahezu unmöglich den Fehler zu lokalisieren und zu beheben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#47

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 24. Mär 2019, 23:22
Win10 mit 4k+HD Monitor (Mischbetrieb):
Welche DPI hat der primäre Monitor?
150% (144 dpi)

Aktuell habe ich auf besagte Monitor-Kombination keinen Zugriff (Geschäfts-Monitor), aber beim testen mit zwei unterschiedlichen Notebooks (W10, HD-Auflösung) kann ich das Problem problemfrei nachstellen.
Zitat:
Bei mir ist es relativ einfach nachstellbar:

- Neues Projekt
- 2 leere Formulare

Win10 mit 4k+HD Monitor (Mischbetrieb):
- Beide Formulare mit wsMaximized-> 2 Formulare werden geöffnet/angezeigt
- Form1 auf "wsNormal" und Form2 auf "wsMaximized" -> Form2 überdeckt Form1, Form2 kann aber nicht geschlossen werden

Wenn ich nur einen HD-Monitor angeschlossen habe, funktioniert es bei mir auch mit 10.3.1 wie erwartet.
Ebenso funktioniert es mit einer gepatchten 10.2.3 wie erwartet
Sobald die Auflösung > 100% (> 96 DPI) ist, tritt das beschriebene Problem auf. Analog gilt dies bei mir bei einer ungepatchten 10.2.3.

Schlussendlich scheint die Kombination HD/4k keinen Einfluss zu haben, es reicht zumindest bei mir aus, wenn die Auflösung > 100% (> 96 DPI) ist.
Roland
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#48

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 24. Mär 2019, 23:36
Zitat:
Schlussendlich scheint die Kombination HD/4k keinen Einfluss zu haben, es reicht zumindest bei mir aus, wenn die Auflösung > 100% (> 96 DPI) ist.
Das könnte noch ein sehr interessantes Problem werden. Ich habe das eben mal nachgestellt und bekomme Create immer vor Activate. Windows 10 Pro 64 bit.
  Mit Zitat antworten Zitat
Edelfix

Registriert seit: 6. Feb 2015
Ort: Stadtoldendorf
213 Beiträge
 
Delphi 10.4 Sydney
 
#49

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 25. Mär 2019, 07:32
Änliches Problem:

https://www.delphipraxis.net/199789-...ml#post1426047
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.994 Beiträge
 
Delphi 12 Athens
 
#50

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 25. Mär 2019, 07:56
Sobald die Auflösung > 100% (> 96 DPI) ist, tritt das beschriebene Problem auf.
Es ist vermutlich noch etwas subtiler: Offenbar muss der Primäre Monitor eine Auflösung > 100% haben. In meiner Mischkombination (100% - 100% - 200%) habe ich deutlich weniger Probleme mit High-DPI, vermutlich weil mein Primärer Monitor auf 100% steht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 8   « Erste     345 67     Letzte »    


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 12:47 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