![]() |
Warnen vor dem schließen
Delphi-Quellcode:
Hallo,
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); public z :integer; versuche :integer; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin randomize; z := random(100)+1; versuche :=0; end; procedure TForm1.Button1Click(Sender: TObject); var r : integer; begin r := StrToInt(edit1.Text); versuche :=versuche+1; if r < z then Label2.Caption := 'Zu niedrig' else if r > z then Label2.Caption := 'Zu hoch' else if r = z then Label2.Caption := 'Erraten'; Label4.Caption :=IntToStr(Versuche); end; end. dieses mal soll gewarnt werden wenn jemand auf schließen klickt- nun meine Frage: Wie verbinde ich die Schließenfunktion mit einem Popup oder wie würdet ihr das umsetzen? |
AW: Warnen vor dem schließen
Delphi-Quellcode:
Wäre ein einfacher und sauberer Weg.
procedure TForm1.OnCloseQuery(Sender: TObject; CanClose: Boolean);
begin if MessageDlg('Echt schließen?', mtConfirmation, [mbYes, mbNo], 0) = mrNo then CanClose := false; end; |
AW: Warnen vor dem schließen
|
AW: Warnen vor dem schließen
Und wenn man den Vorgabewert von CanClose nicht kennt:
Delphi-Quellcode:
CanClose := MessageDlg(...) = mrYes;
|
AW: Warnen vor dem schließen
Was verstehst du unter schließen? Programm beenden? Wenn ja, im Hauptformular unter Ereignisse in OnCloseQuery der Variable CanClose auf False setzten, oder eine Abfrage einbauen. Und wozu ein PopUp? PopUp kennt die Methode Popup(X, Y). Damit kannst du die Position steuern.
|
AW: Warnen vor dem schließen
Guten Morgen auch :lol:
|
AW: Warnen vor dem schließen
Morgen
|
AW: Warnen vor dem schließen
Soweit Ich aus dem letzten Thema noch weiß, wolltest du diese Abfrage nur haben, falls der Vorgang noch läuft. (dh. die Zahl noch nicht erraten wurde).
Delphi-Quellcode:
Du könntest die Abfrage auch mit den netten Beiträgen meiner Vorredner kombinieren, falls trotzdem geschlossen werden darf.
if (r = z) then
begin Close; end else begin ShowMessage('Erst zuende raten.'); end; Hier müsste man wirklich erst zuenderaten. Allerdings beachten die anderen Lösungen nicht, das nur gefragt wird wenn die Zahl noch nicht erraten ist. Grüße |
AW: Warnen vor dem schließen
Bei jedem Klick auf den Button eine Message, dass ich erst zu Ende raten soll, obwohl ich nichts Gegenteiliges signalisiert habe? Das würde mich als Anwender aber sehr verwirren.
|
AW: Warnen vor dem schließen
Zitat:
Ehrlich? Also wenn Ich als Anwender vom Programm darüber informiert werde, dass ein Vorgang noch nicht beended wurde, finde Ich das nicht allzuweit hergeholt. Eher okay ^_^ Allerdings sollte es nicht 'erst zu Ende raten' heißen sondern vielleicht ein Messagefenster aufrufen, so wie Ihr es oben gezeigt habt bei dem dann trotzdem geschlossen werden kann. Dann könnte man auch noch höflicher Fragen. So meinte ich des ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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 by Thomas Breitkreuz