AGB  ·  Datenschutz  ·  Impressum  







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

Dialoganzeige Abbrechen

Ein Thema von Berni68 · begonnen am 27. Aug 2009 · letzter Beitrag vom 27. Aug 2009
Antwort Antwort
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#1

Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:19
Hallo zusammen,

wie schließe ich einen modal angezeigten Dialog im Ereignis OnShow.
Folgendes hab ich schon probiert:

Delphi-Quellcode:
type
  TDialog. = class(TForm)
  ...
  private
    CanShow: boolean;
  ...
  end;

procedure TDialog.FormShow(Sender: TObject);
begin
  // Prüfungen ob Dialog angezeigt werden darf negativ:
  CanShow:= false;
  Exit;
  // Code wenn Prüfung positiv
end;

procedure TDialog.FormActivate(Sender: TObject);
begin
  if CanShow=false then ModalResult:= mrCancel;
    // geht nicht Dialog wird trotzdem angezeigt

  if CanShow=false then BitBtnCancelClick(Sender);
   // geht auch nicht Dialog wird trotzdem angezeigt, kann dann aber über BitBtnCancel geschlossen werden

  if CanShow=false then Hide;
    // geht auch nicht Dialog wird trotzdem angezeigt
end;
hat jemand mal einen Tip?
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:21
Im OnShow ist es wohl etwas spät. Kannst du das nicht eher überprüfen?

Edit: wobei ein "Close;" reichen dürfte.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:28
if CanShow=false then Close; // Geht auch nicht, Dialog wird angezeigt

Ich möchte nicht früher prüfen, da die Prüflogik im Dialogformular sein sollte.
Der Dialog wird an verschiedenen Stellen aufgerufen und soll so einfach wie möglich sein.
Wenn der Dialog auch kutz aufflackern sollte dann aber wieder zugeht wäre in Ordnung
Bernhard
  Mit Zitat antworten Zitat
Zoot

Registriert seit: 30. Jan 2006
Ort: Hessen
110 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:47
Zitat von Berni68:
Ich möchte nicht früher prüfen, da die Prüflogik im Dialogformular sein sollte.
Versteh ich jetzt nicht.

If Dialog.Check then Dialog.show oder so ähnlich sollte doch immer gehen?
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:53
Richtig, so werd ich es jetzt umsetzen.
Danke
(Manchmal dauert es eben länger bis man morgens auchwacht)
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Dialoganzeige Abbrechen

  Alt 27. Aug 2009, 08:58
Alternative notlösung falls bestimmung in Methode nicht möglich:

PostMessage(self.Handle, WM_CLOSE, 0, 0);
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 17:12 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