![]() |
Delphi-Version: 2009
CanClose ändern???
Hallo DP,
erstmal muss ich mich an das neue Design gewöhnen. Alles ist anders :-D. Aber back to topic: Ich setzte im CloseQuery Ereignis einer meiner Forms Canclose auf False. Jetzt ist das aber so. Ich möchte diese Form nur mit einer eigenen Prozedur beenden. D.h. ich hab meine Prozedur und die nenne ich jetzt mal als Beispiel FClose.
Delphi-Quellcode:
In dieser hab ich ein paar Anweisungen und danach soll sich die Form schließen. Da ich aber CanClose auf False gesetzt habe muss ich es ja wieder auf True setzen um die Form zu schließen.
procedure FClose;
begin ... close; end; Mein Problem ist aber, wie setze ich CanClose außerhalb vom CloseQuery Ereignis wieder auf True??? Ach und Application.Terminate kann ich nicht nutzen, weil mein Programm noch laufen soll. :stupid: |
AW: CanClose ändern???
Delphi-Quellcode:
Das könntest du an deine Form schicken - dann wird die Form gefreet.
PostMessage(Handle, CM_RELEASE, 0, 0);
|
AW: CanClose ändern???
Funktioniert leider nicht.
|
AW: CanClose ändern???
Wäre auch sinnfrei.
Wenn du Close selbst aufrufst, dann musst du vorher dafür sorgen, dass dein Ereignishandler CanClose dabei dann nicht auf False setzt. Fertig. Dafür bietet sich ein boolsches Feld des Formulars an. |
AW: CanClose ändern???
Und wie mach ich das. Des würde ich ja gerne wissen. :gruebel:
|
AW: CanClose ändern???
Kann deine Funktion die ein paar Sachen macht nicht im CanClose-Event aufgerufen werden und das Ergebnis ist dann True?
|
AW: CanClose ändern???
Ich will aber nicht, dass man die Form mit Alt+F4 schließen kann.
PS: Ich will Strg+D auch noch deaktivieren. Ansatz?? |
AW: CanClose ändern???
Delphi-Quellcode:
Was macht denn Strg+D?
type
TForm10 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); private { Private-Deklarationen } FCanClose: Boolean; public { Public-Deklarationen } end; var Form10: TForm10; implementation {$R *.dfm} procedure TForm10.Button1Click(Sender: TObject); begin FCanClose := True; Close; end; procedure TForm10.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := FCanClose; end; procedure TForm10.FormCreate(Sender: TObject); begin FCanClose := False; end; |
AW: CanClose ändern???
Delphi-Quellcode:
Ungetestet, da direkt im Editor eingetippt.
type
TDeinForm = class(TForm) private FCloseAllowed: Boolean; ... procedure TDeinForm.CloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := FCloseAllowed; end; procedure TDeinForm.MachZu; begin FCloseAllowed := true; Close; end; [edit] Zu langsam *grmpf* [/edit] |
AW: CanClose ändern???
Zitat:
|
AW: CanClose ändern???
Darf man fragen, was das für ein Programm werden soll, mit dem du dem Benutzer mehr oder weniger die Kontrolle über seinen Rechner nehmen willst?
Davon mal abgesehen, hast du schon mal die Suche nach Win+D bemüht? |
AW: CanClose ändern???
Zitat:
Edit: Es ist ein kleiner IphoneLockscreen Klon. Kleiner Passwortschutz. Entsteht aber nur zum Spaß und nur für mich. Und nach Win+D hab ich noch nicht gesucht, werd ich aber gleich machen. |
AW: CanClose ändern???
Zitat:
Ich habe schon seit Freitag gesucht, da hier ja leider zu war, aber nichts gefunden. In dem Zusammenhang ist auch Alt+Tab Relevant, da hier auch der Desktop angezeigt wird... Liebe Grüße! |
AW: CanClose ändern???
Zitat:
Ich habe schon seit Freitag gesucht, da hier ja leider zu war, aber nichts gefunden. In dem Zusammenhang ist auch Alt+Tab Relevant, da hier auch der Desktop angezeigt wird... Zitat:
Eine Art Desktoplock Programm, welches den Desktop sperrt, ohne sich abzumelden oder den Computer auf Windows-Basis zu sperren und andere Anmeldemöglichkeiten zu erstellen (Mausgesten, Bestimmte Reihenfolge von Buttons anklicken, etc.) Bestimmt auch an öffentlichen PCs nützlich (Internet-Cafes), wenn das Programm sich nach beispielsweise 10 Minuten wieder vor die normalen Anwendungen schalten soll, damit entweder Geld nachgezahlt werden soll oder man auf Beenden klickt und so die Sitzung beendet... Also Anwendungsgebiete gibt es genug... Liebe Grüße! //Edit Versuch 2: Sorry für Doppelpost, ich habe auf Edit geklickt. Jetzt klappts ja wohl. Kann mal bitte jemand prüfen ob das nur ein Einzelfall war oder ob das ein allgemeiner Fehler ist?!! |
AW: CanClose ändern???
Zitat:
|
AW: CanClose ändern???
Zitat:
Einige Programme stellen auch den Dienst bei Sperrung der WorkStation ein. So zum Beispiel einige MediaPlayer. So ist es unmöglich, den PC zu sperren, wenn man Besuch hat und über diesen Musik laufen hat. Und wie gesagt ist so eine Sperre möglich, die nicht auf Fingerabdruck, Passwort oder Gesichtserkennung basiert. Zusätzlich gibt es Computersysteme (öffentlich), die absichtlich den Desktop deaktivieren (Also nur ein Hintergrundbild) und es so zu einer Fehlermeldung kommt, wenn man Win+D drückt. Wenn man dann nebenbei ein kleines Miniprogramm laufen hat, so kann dieses den Befehl Win+D abfangen und beispielsweise durch Win+M (also nur minimieren) ersetzen und so die Fehlermeldung umgehen. Liebe Grüße! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 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 by Thomas Breitkreuz