AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi falsches Fenster im Vordergrund
Thema durchsuchen
Ansicht
Themen-Optionen

falsches Fenster im Vordergrund

Ein Thema von rokli · begonnen am 11. Nov 2019 · letzter Beitrag vom 6. Dez 2019
 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.196 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: falsches Fenster im Vordergrund

  Alt 12. Nov 2019, 12:27
"... Da bei einem modalen Formular die Anwendung unterbrochen wird, bis der Benutzer das Fenster wieder schließt, ..." Daraus habe ich abgeleitet, dass die Form1 nicht verwendet werden kann (=> und im Hintergrund bleibt!!), bis Form2 wieder geschlossen worden ist. Und in der Zwischenzeit soll nur in Form2 gearbeitet werden.
Ich habe mal einem meiner Testprogramme ein neues Formuzlarverpasst und zeige dieses bei einem Buttonclick an:
Delphi-Quellcode:
procedure TMainPage.TlbModalClick(Sender: TObject);
begin
  Modalform.ShowModal;
end;
Auf der Modalform hab ich einen Button und ein Edit:
Delphi-Quellcode:
procedure TModalform.BitBtn1Click(Sender: TObject);
begin
  Edit1.Text := HelpTestMain.MainPage.PageControl1.ClassName
end;
Irgendwie hatte ich den Verdacht, dass ein Zugriff auf die Hauptform diese aktivieren könnte - wobei mein Zugriff sehr minimal ist und so (noch?) keinen Einfluss hat.

Ausserdem hab ich getestet, wie sich die Form verhält, wenn sie über das x rechts oben geschlossen wird:
Delphi-Quellcode:
procedure TModalform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Showmessage('OnClose!');
end;

procedure TModalform.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Showmessage('FormCloseQuery!');
end;

procedure TModalform.FormDeactivate(Sender: TObject);
begin
  Showmessage('FormDeactivate!')
end;
Also der selbe Ablauf, wie über einen schliessen-Button oder wasauch immer.

Zitat:
Und wenn die Situation eintritt, dass das Fenster von Form1 nach vorne kommt, kann darin nicht geklickt werden (da die Form1 ja unterbrochen ist), sondern für den Anwender fühlt sich das son an, als wenn die Anwendung sich aufgehängt hat, bzw. das "sein Programm" (=> Form2) verschwunden ist. Mit dem ModalResult habe ich bisher nicht gearbeitet, weil ich damit keine Steuerung bauen wollte, sondern über den Mechanismus Form2.ShowModal sicherstellen wollte, dass der Anwender nur das "richtige" Fenster 2 verwendet.

Ich hoffe mal, dass mein Vorgehen nun etwas genauer herausgearbeitet ist.
Ja, das ist es. Wie Hoika geschrieben hat, solltest du herausfinden, wann und möglichst warum dieses Verhalten auftritt. Ich verwende dazu eine Stringliste, die ich beim Beenden abspeichere, so dass ich nach Beenden der Anwendung nachlesen kann, was in welcher Reihenfolge und mit welchen Werten abgearbeitet wurde.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
 


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 11:37 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