AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein MainMenu unsichtbar nach Update auf XE10.2.2
Thema durchsuchen
Ansicht
Themen-Optionen

MainMenu unsichtbar nach Update auf XE10.2.2

Ein Thema von norwegen60 · begonnen am 11. Jan 2018 · letzter Beitrag vom 17. Feb 2018
Antwort Antwort
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#1

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 12. Jan 2018, 18:10
Zitat:
1. Citrix: Bisher keien Probleme bekannt
2. Lokale Installation: Ca. 60% arbeiten korrekt
Exakt, kann ich bestätigen.
Ich rede jetzt nicht von Delphi Anwendungen, aber ziemlich massive Probleme auf lokalen Rechnern mit Win10 Creators Fall Update und diversen Programmen.
Citrix läuft gut, weiss aber im Moment gar nicht welche Windows-Version das ist.

Nach Updates der Programme war es dann aber oft OK, habe jetzt nicht gecheckt womit die entwickelt wurden (David Tobit, FoxitReader, um mal zwei zu nennen).

Rollo
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#2

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 16. Feb 2018, 20:08
Hallo,

nach einiger Sucherei habe ich herausgefunden, wie man das unsichtbare MainMenu erzeugen kann
Man benötigt nur ein MainForm mit einem TMainMenu und folgende zwei Anweisungen
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.WindowState := wsMaximized;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  miDatei.Caption := 'Test';
end;
Setzt man wsMaxiMized schon in der IDE, wird das Menu korrekt angezeigt.

Ich speichere beim Schließen der Anwendung Größe und Lage des Fensters und Öffne die Anwendung beim nächsten Start wieder dort. Es hat eine Zeit lang gedauert, bis ich herausgefunden habe, dass der Fehler nur bei denen auftrat, die die Anwendung im Status Maximized beendet haben.
Der Fehler tritt bei Win7, Win8 und Win10 auf.

Im meiner Anwendung wurde bei Resize die Größe des Fensters angezeigt. Da das aber nur für ein Test war, war es kein Problem die Zuweisung zu löschen. Damit funktioniert die Anwendung wieder einwandfrei.
Sie funktioniert auch einwandfrei, wenn ich die Eingenschaft WindowsState schon in der IDE auf wsMaximized setze. Dann kann ich das Form ohne Probleme in OnCreate auf die letzte Größe ändern.

Hat jemand eine Erklärung?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 16. Feb 2018, 21:49
Hat jemand eine Erklärung?
Nicht direkt, aber hast du mal gezählt, wie oft das Resize allein durch das Setzen von WindowState oder auch durch das Setzen der Caption (rekursiv) aufgerufen wird?

Das Setzen der Caption löst einen Neuaufbau des Menüs aus. Dazu wird es erstmal gelöscht und dann wieder aufgebaut. Menü weg oder wieder da löst aber eben auch einen Resize-Event aus, was zu diesem rekursiven Aufruf führt.

Schreib die Info lieber in irgendein Label - oder noch besser: verwende ein richtiges Logging (z.B. CodeSite).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
522 Beiträge
 
Delphi 12 Athens
 
#4

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 16. Feb 2018, 23:49
Ja, ich hatte schon einen Zähler eingebaut. Resize wurde 61x aufgerufen. Ich hätte eigentlich erwartet, dass dieser Effekt auch beim Umschalten von Maximized zu Normal auftritt, aber da war es nur 1x.
Blöd nur wenn so was jahrelang funktioniert und dann plötzlich Probleme macht.
Insgesamt war die Implementation aber unsinnig weshalb sie jetzt draußen ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#5

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 17. Feb 2018, 11:33
Zitat:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.WindowState := wsMaximized;
end;
Du greifst schon jahrelang von innerhalb der Klasse auf vielleicht deren globale Variable drauf zu, anstatt auf Delphi-Referenz durchsuchenSelf?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 17. Feb 2018, 11:37
Du greifst schon jahrelang von innerhalb der Klasse auf vielleicht deren globale Variable drauf zu, anstatt auf Delphi-Referenz durchsuchenSelf?
Das ist in der Tat schon echt böse, aber Delphi fängt das netterweise dadurch ab, daß die Instanz bereits vor dem Aufruf von Create passend gesetzt wird. Auch wieder so ein Fall, wo Bad Practice schon jahrelang toleriert wird. Irgendwann kommt aber dann doch das böse Erwachen und führt zu Kommentaren wie diesem:

Blöd nur wenn so was jahrelang funktioniert und dann plötzlich Probleme macht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.373 Beiträge
 
Delphi 12 Athens
 
#7

AW: MainMenu unsichtbar nach Update auf XE10.2.2

  Alt 17. Feb 2018, 11:46
aber Delphi fängt das netterweise dadurch ab, daß die Instanz bereits vor dem Aufruf von Create passend gesetzt wird.
Jupp, aber nur bei automatisch erzeugten Forms, welche über Applicataion.CreateForm erzeug werden. Normal ist das nicht und knallen wird es immer, wenn die Form/Komponente mehrfach existiert.
Ein Therapeut entspricht 1024 Gigapeut.
  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:

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