AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Modales Fenster in der Taskleiste anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

Modales Fenster in der Taskleiste anzeigen

Ein Thema von Getox · begonnen am 23. Feb 2017 · letzter Beitrag vom 24. Feb 2017
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 23. Feb 2017, 15:22
Nochmal zur Erklärung:
Ich versuche das alles etwas zu umschreiben, weil ich nicht weiß wie viel ich von der Software hier preisgeben darf

Wenn man das Programm startet kommt eine Login-Maske. Diese ist im Programm das MainForm. Wenn man sich einloggt, wird diese Login-Maske ausgeblendet und das Hauptfenster des Programms erscheint (nicht modal). Von dort aus kann man dann das Form für das Modul modal aufrufen, während das Hauptfenster mit hide versteckt wird.
Ich würde die Sache ganz anders angehen.

Das Hauptformular ist nicht die Loginform sondern das Fenster, in dem du dauerhaft arbeitest. Das Login Fenster wird vor dem Start der MainForm in der DPR Datei schon erzeugt und angezeigt. Schlägt der Login fehl, wird die Software, ohne Erzeugung des Hauptfensters, wieder beendet. Ist der Login erfolgreich, wird das Hauptformular erzeugt und geöffnet. Die Loginform wird beim Schließen wieder freigegeben weil diese nicht mehr benötigt wird.

So mache ich das aktuell bei meiner Dokumentenverwaltung. Funktioniert tadellos und sowohl das Loginfenster als auch das Hauptformular (MainForm) werden auf der Taskleiste angezeigt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 23. Feb 2017, 15:26
Zitat:
So mache ich das aktuell bei meiner Dokumentenverwaltung. Funktioniert tadellos und sowohl das Loginfenster als auch das Hauptformular (MainForm) werden auf der Taskleiste angezeigt.
Du weist aber nicht was mit seiner Denkweise bezweckt wird..
Auch wenn es für deine zwecke dienlich ist muss es bei ihm noch lange nicht sein.

Wie gesagt wir können nur Raten.

gruss
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 24. Feb 2017, 09:58
Ich habe keine Ahnung ob es interessiert, aber ich habe die Lösung gefunden (nach insgesamt knapp 8 Stunden raten und probieren).

Ich habe eine Stelle gefunden (im onShow des Modulfensters) wo dieses mit dem WindowState des Hauptfensters geöffnet wird.

Code:
Self.WindowState := Hauptfenster.WindowState;
//Fensternamen abgeändert
Nach endlosem testen habe ich folgendes festgestellt: Wenn das Modulfenster nun in wsMaximized geöffnet wurde, wurde es ganz normal in der Taskleiste angezeigt und auch das Zweite Problem mit dem Hauptfenster, welches nicht in den Hintergrund verschwinden sollte war nicht vorhanden. Aber ein manuelles umschalten des Modus (mit klick auf die Buttons oder ziehen des Forms an den Bildschirmrand) hat diesen Effekt nicht gehabt.

Die Lösung ist gewesen:
Code:
Self.WindowState := Hauptfenster.WindowState;
//Jetzt die Lösung:
if self.WindowState = wsNormal then
  ShowWindow(self.handle, SW_RESTORE);
Ich weiß nicht woran es gelegen hat oder warum diese Lösung funktioniert... aber ich bin endlos glücklich, dass es nun klappt.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 24. Feb 2017, 11:32
Gut zu hören das es nun funktioniert.
Manchmal muss man einfach am Ball bleiben auch wenn es nervet und lange dauern kann.
Ne Tasse Kaffee kann da schon helfen.

gruss
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 23. Feb 2017, 15:31
Nochmal zur Erklärung:
Ich versuche das alles etwas zu umschreiben, weil ich nicht weiß wie viel ich von der Software hier preisgeben darf

Wenn man das Programm startet kommt eine Login-Maske. Diese ist im Programm das MainForm. Wenn man sich einloggt, wird diese Login-Maske ausgeblendet und das Hauptfenster des Programms erscheint (nicht modal). Von dort aus kann man dann das Form für das Modul modal aufrufen, während das Hauptfenster mit hide versteckt wird.
Ich würde die Sache ganz anders angehen.

Das Hauptformular ist nicht die Loginform sondern das Fenster, in dem du dauerhaft arbeitest. Das Login Fenster wird vor dem Start der MainForm in der DPR Datei schon erzeugt und angezeigt. Schlägt der Login fehl, wird die Software, ohne Erzeugung des Hauptfensters, wieder beendet. Ist der Login erfolgreich, wird das Hauptformular erzeugt und geöffnet. Die Loginform wird beim Schließen wieder freigegeben weil diese nicht mehr benötigt wird.

So mache ich das aktuell bei meiner Dokumentenverwaltung. Funktioniert tadellos und sowohl das Loginfenster als auch das Hauptformular (MainForm) werden auf der Taskleiste angezeigt.
Ich würde so gerne vieles an dem Programm ändern... Das Problem ist, dass ich da nicht viel dran ändern darf. Es handelt sich um eine "historisch gewachsene" recht alte Software, wo ich Probleme beheben muss und nebenbei wie Hölle aufpassen muss, dabei nicht an 10 anderen Stellen irgendwas kaputt zu machen -.-
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  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 19:21 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