Form nicht über X schließen!?


krauZe

Grünschnabel
Kann ich einstellen, dass ich mit dem roten X (schließen) in der kopfzeile des formulars, das Formular NICHT schließen kann, sondern NUR über nen close button im formular`?

bzw, das es die buttons minimieren/maxieren/schließen in der blauen kopfzeile gar nicht gibt?


(hab Delphi 7) .. und bin anfänger ;)
rechnen un so kann cihs chin ;)
 

krauZe

Grünschnabel
danke danke
hat funktioniert


nur gibts ein problem. nun kann man die anwendung aber immernoch über
taskleiste >> rechtsklick >> schließen beenden.. kann ich auch dies deaktivieren
 

Kangaxx

Mitglied
Hallo,

mit dem Verstecken der Buttons hast du wirklich nur eine der Beendungs-Möglichkeiten entfernt. Schau dir mal das OnClose-Event des Formulars an! Da gibts einen Var-Parameter (siehe Call by Reference) für die TCloseAction. Diese gibt an wie das Fenster den Beendigungs-Versuch behandeln soll. Wenn du hier einfach folgendes machst,
Code:
procedure TYourForm.FormClose(Sender: TObject; 
  var Action: TCloseAction); 
begin 
  Action := caNone;
end;
dann wird jedes Schließen (außer über den TaskManager!) ignoriert.

Hoffe das hilft!

gruß, Kangaxx
 

vop

Erfahrenes Mitglied
Bei dem Form kannst du das Ereignis OnCloseQuery verwenden.

Dort gibt es eine Variable CanClose, die du in der Ereignisverarbeitung verändern kannst.

Setze dort CanClose := false und das Schließen funktioniert nicht.
Du kannst an dieser Stelle auch eine Rückfrage oder ähnliches einbauen und CanClose entsprechend setzen.

Das sollte helfen.
vop