AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form.Show nur beim ersten Aufruf mit Effekt unter Vista/7
Thema durchsuchen
Ansicht
Themen-Optionen

Form.Show nur beim ersten Aufruf mit Effekt unter Vista/7

Offene Frage von "Keks"
Ein Thema von Keks · begonnen am 17. Sep 2009 · letzter Beitrag vom 17. Sep 2009
Antwort Antwort
Keks

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

Form.Show nur beim ersten Aufruf mit Effekt unter Vista/7

  Alt 17. Sep 2009, 14:27
Unter Vista/7 wird beim erstmaligen Aufrufen einer Form per Form1.Show (sowie beim Starten von Programmen) das Fenster mit einem kleinen Effekt angezeigt (schnelles Einblenden und lechtes Vergrößern). Das hat keine besondere Funktionalität, sieht aber einfach nett aus.

Das Problem ist nun, dass dieser Effekt nur beim ersten Show-Aufruf erscheint. Schließe ich diese Form nun mit Close oder Hide und rufe sie danach wieder mit Show auf, erscheint sie einfach ohne diesen Effekt.

Ich würde nun gern wissen, woran das liegt, dass dieser Effekt nur beim ersten Aufruf erscheint und wie man es erreichen kann, dass der Effekt immer verwendet wird.

Hoffe, jemand hat eine Idee...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Form.Show nur beim ersten Aufruf mit Effekt unter Vista/

  Alt 17. Sep 2009, 14:29
Was passiert wenn du das Formular freigibst und neu erzeugst und dann nochmal anzeigst.
Ich vermute das sich für den Fenster-Handle gemerkt wird ob der effekt schon angewand wurde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Keks

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

Re: Form.Show nur beim ersten Aufruf mit Effekt unter Vista/

  Alt 17. Sep 2009, 14:41
Das funktioniert dann zwar, aber ich möchte das Fenster nicht freigeben, weil ich sonst nicht auf dessen Elemente zugreifen kann, wenn es nicht sichtbar ist (was ich stellenweise tun muss).
Kann ich stattdessen irgendwie die Information zurücksetzen, dass der Effekt schon angewandt wurde? Flag o.ä.?
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#4

Re: Form.Show nur beim ersten Aufruf mit Effekt unter Vista/

  Alt 17. Sep 2009, 15:56
Leg Deine Routine aus dem OnShow mal in das OnPaint-Ereigniss
  Mit Zitat antworten Zitat
Keks

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

Re: Form.Show nur beim ersten Aufruf mit Effekt unter Vista/

  Alt 17. Sep 2009, 16:06
Welche Routine?
  Mit Zitat antworten Zitat
Keks

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

Re: Form.Show nur beim ersten Aufruf mit Effekt unter Vista/

  Alt 17. Sep 2009, 16:53
Also nach ein bisschen Herumgespiele, habe ich das jetzt so:

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Free;
  Application.CreateForm(TForm1, Form1);
end;
Damit scheint das zu klappen. Irgendwie finde ich das aber unschön. Zudem ist das bestenfalls ein Workaround und ich kann das leider nicht auf meine MainForm anwenden, die ich in Verbindung mit CoolTrayBar verschwinden und erscheinen lasse. Da kommen Zugriffsverletzungen.

Also ich bin mir ziemlich sicher, dass man da irgendwie (per Windows API?) ein Flag ändern können müsste, damit der Effekt beim Anzeigen immer wieder gezeigt wird. Nur leider habe ich jetzt nach langem Googeln nichts dazu gefunden (mir fehlen wohl die richtigen Suchbegriffe).

Gibt es jemanden, der eine Vermutung hat, wie das gehen könnte und mit besseren Suchbegriffen dazu was findet? Wäre klasse!
  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 06:28 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