Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows Fenster mit Ok und abbrechen? (https://www.delphipraxis.net/34235-windows-fenster-mit-ok-und-abbrechen.html)

ehem. Benutzer 19. Nov 2004 18:15


Windows Fenster mit Ok und abbrechen?
 
Wie erstelle ich ein Windows Fenster mit den Buttons "OK" und "Abbrechen" bzw. "ja" und "nein"
und oben ein von mir festgelegter Text?
Gibt es da einen Befehl für, oder muss ich da eine neue Form machen?




MfG

Meflin 19. Nov 2004 18:16

Re: Windows Fenster mit Ok und abbrechen?
 
Delphi-Referenz durchsuchenmessagedlg könnte dir weiterhelfen

Mystic 19. Nov 2004 18:18

Re: Windows Fenster mit Ok und abbrechen?
 
Schau mal in der Delphi-Hilfe nach Delphi-Referenz durchsuchenMessageBox.

Luckie 19. Nov 2004 18:18

Re: Windows Fenster mit Ok und abbrechen?
 
Alternativ: [msdn]"MessageBox"[/msdn]

ehem. Benutzer 19. Nov 2004 18:58

Re: Windows Fenster mit Ok und abbrechen?
 
Aus der Delphi Hilfe werd dich bei diesem Thema irgendwie nicht schlau,
trotzdem danke.


P.S. ich will beim beenden meines Programms nachfragen ob es gespeichert werden soll und
dies will ich mit ja und nein machen.



MfG

Luckie 19. Nov 2004 19:24

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Aus der Delphi Hilfe werd dich bei diesem Thema irgendwie nicht schlau,
Also in meiner Hilfe ist zum MessageDlg sogar ein Beispiel dabei. :roll:

Mystic 19. Nov 2004 19:25

Re: Windows Fenster mit Ok und abbrechen?
 
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  // filename = Name der gerade geöffeneten Datei
  case Application.MessageBox('Änderungen an "' + filename + '" speichern?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of
    IDYES: begin
             CanClose := True;
             // Hier Datei speichern
           end;
    IDNO: begin
             CanClose := True;
             // Hier Datei nicht speichern
           end;
    else  CanClose := False; // Abbrechen gedrückt, Programm wird nicht beendet
  end;
end;
edit: [/delphi] vergessen.

ehem. Benutzer 19. Nov 2004 19:38

Re: Windows Fenster mit Ok und abbrechen?
 
Delphi meckert bei "filename"
Delphi-Quellcode:
case Application.MessageBox('Änderungen an "' + filename + '"
"filename" sei ein undefinierter Bezeichner, stimmt ja auch, er wurde ja nicht
deklariert oder ist nicht richtig festgelegt...



MfG

idontwantaname 19. Nov 2004 20:12

Re: Windows Fenster mit Ok und abbrechen?
 
filename ist nur ne variable, die luckie in seinem sample gepostet hat, eigentlich völlig unwichtig, nur halt, falls du sowas wie nen texteditor machst, das filename der name der gerade geöffneten datei ist.

ehem. Benutzer 19. Nov 2004 20:14

Re: Windows Fenster mit Ok und abbrechen?
 
Ja ich mache einen Texteditor, nur will Delphi das Programm nicht compilieren da
"filename" Delphi stört.



MfG

idontwantaname 19. Nov 2004 20:16

Re: Windows Fenster mit Ok und abbrechen?
 
du kannst das weglassen
Delphi-Quellcode:
case Application.MessageBox('Wollen Sie wirklich beenden?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of

jim_raynor 19. Nov 2004 20:17

Re: Windows Fenster mit Ok und abbrechen?
 
:wall: :wall: :wall:

In irgendeiner Variablen musst du doch den Dateinamen gespeichert haben ... Und diese Variable musst du statt Filename benutzen.

ehem. Benutzer 19. Nov 2004 20:21

Re: Windows Fenster mit Ok und abbrechen?
 
Ich habe sie nicht deklariert...
Aber ich mache es jetzt anders, trotzdem danke.
Nur irgendwie muss man doch den Namen der gerade geöffneten Datei bekommen, oder?



MfG

jim_raynor 19. Nov 2004 20:24

Re: Windows Fenster mit Ok und abbrechen?
 
Dazu musst du den Namen der Datei beim öffnen irgendwo (zum Beispiel einer Variablen) speichern.

idontwantaname 19. Nov 2004 20:29

Re: Windows Fenster mit Ok und abbrechen?
 
zuerst öffnest du eine datei, mit einem opendialog, oder?

jetzt definierst du eine variable (z.B: dateiname)
Delphi-Quellcode:
var
  Form1: TForm1;
  dateiname:String;
und dann in der procedure:
Delphi-Quellcode:
dateiname := ExtractFileName(OpenDialog1.Filename);

Mystic 19. Nov 2004 21:48

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat von idontwantaname
du kannst das weglassen
Delphi-Quellcode:
case Application.MessageBox('Wollen Sie wirklich beenden?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of

Falsche Frage. Bei Nein wird das Programm ja auch geschlossen.

Delphi-Quellcode:
case Application.MessageBox('Vor dem Schließen speichern?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of

idontwantaname 20. Nov 2004 09:30

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat von Mystic
Zitat:

Zitat von idontwantaname
du kannst das weglassen
Delphi-Quellcode:
case Application.MessageBox('Wollen Sie wirklich beenden?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of

Falsche Frage. Bei Nein wird das Programm ja auch geschlossen.

Delphi-Quellcode:
case Application.MessageBox('Vor dem Schließen speichern?','MeinProgramm',MB_YESNOCANCEL or MB_ICONQUESTION) of

oh, hab mich verschaut, mein beispiel wäre zu einer einfachen abfrage, ob das prog beendet werden soll
Delphi-Quellcode:
case Application.MessageBox('Wollen Sie wirklich beenden?','Mein Programm',MB_YESNO) of
  IDYES: begin
    CanClose := True;
  end;

  IDNO: begin
    CanCLose := False;
  end;
end;

Chegga 20. Nov 2004 09:41

Re: Windows Fenster mit Ok und abbrechen?
 
Hi,

ich werfe mal diesen Code in den Raum.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.MessageBox('Das Programm wird beendet', 'Info', 49);
end;

idontwantaname 20. Nov 2004 10:18

Re: Windows Fenster mit Ok und abbrechen?
 
tja, dann drückt man auf den button, es erscheint die messagebox und dann? .... nichts
du musst das schon in die OnCloseQuery-procedure geben und dann mit case abfragen, was geschehen soll, was aber eh schon in den letzten posts erklärt wurde

ehem. Benutzer 21. Nov 2004 16:49

Re: Windows Fenster mit Ok und abbrechen?
 
Was muss ich für chancel eingeben, also abbrechen?
Es steht oben mit drin in der procedur nur wie ist der Befehl dafür?



MfG

Christian Seehase 21. Nov 2004 17:14

Re: Windows Fenster mit Ok und abbrechen?
 
Moin ,

meinst Du jetzt IDCANCEL?

Eine Dokumentation zu MSDN-Library durchsuchenMessageBox

ehem. Benutzer 21. Nov 2004 18:17

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat von Christian Seehase
Moin ,

meinst Du jetzt IDCANCEL?

Eine Dokumentation zu MSDN-Library durchsuchenMessageBox

Die dort angegebenen Links helfen mir nicht großartig weiter,
ich möchte ledeglich wissen wie der Befehl für IDCancel heisst, damit dies
auch umgesetzt wird (also abbrechen und zurück zum Programm) und nicht das es
beendet wird...



MfG

Mystic 21. Nov 2004 18:42

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Die dort angegebenen Links helfen mir nicht großartig weiter,
ich möchte ledeglich wissen wie der Befehl für IDCancel heisst, damit dies
auch umgesetzt wird (also abbrechen und zurück zum Programm) und nicht das es
beendet wird...
Bei meinem Beispiel ist das so. Das CanClose := false verhindert das Schließen.

[OT]Wieso gabs ein paar mal die seltsame Fehlermeldung "Nur haben die Berechtigung, in diesem Forum auf Beiträge zu antworten." von DP als ich versucht habe zu antworten?[/OT]

Luckie 21. Nov 2004 18:44

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat:

Zitat von Christian Seehase
Moin ,

meinst Du jetzt IDCANCEL?

Eine Dokumentation zu MSDN-Library durchsuchenMessageBox

Die dort angegebenen Links helfen mir nicht großartig weiter,
also wenn man etwas Eigeninitiative zeigt, dann findet an diese Seite im MSDN: http://msdn.microsoft.com/library/de...messagebox.asp

Zitat:

ich möchte ledeglich wissen wie der Befehl für IDCancel heisst, damit dies
auch umgesetzt wird (also abbrechen und zurück zum Programm) und nicht das es
beendet wird...
Du scheinst das noch nicht so ganz begriffen zu haben. Messagebox ist eine Funktion die je nach dem, was der benutzer angeklickt hat einen Wert zurückliefert. Für "OK" ist das eben IDOK und für "Abbrechen" eben IDCANCEL. Und diese Werte kann ich abfragen. Wie das geht, wurde dir schon in diversen Beispieln weiter oben demonstriert.

ehem. Benutzer 21. Nov 2004 18:56

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Du scheinst das noch nicht so ganz begriffen zu haben. Messagebox ist eine Funktion die je nach dem, was der benutzer angeklickt hat einen Wert zurückliefert. Für "OK" ist das eben IDOK und für "Abbrechen" eben IDCANCEL. Und diese Werte kann ich abfragen. Wie das geht, wurde dir schon in diversen Beispieln weiter oben demonstriert.
Ich weis, ich weis.
Nur brauche ich einen Befehl den ich hinter IDx eingebe,
damit etwas eintritt wenn ich klicke, wenn man nichts eingibt schließt sich das
Programm.

Ich brauche einen Befehl, den ich Hinter IDCANCEL setze (zwischen begin und end;)
der dem Programm sagt das die Messagebox und nicht das ganze Programm geschlossen wird,
also das "Abbrechen" umgesetzt wird, und danach suche ich.


Zitat:

also wenn man etwas Eigeninitiative zeigt, dann findet an diese Seite im MSDN: http://msdn.microsoft.com/library/de...url=/library/e ... agebox.asp
Auf dieser Seite war ich auch schon einmal, da steht folgendes:
Zitat:

If a message box has a Cancel button, the function returns the IDCANCEL value if either the ESC key is pressed or the Cancel button is selected. If the message box has no Cancel button, pressing ESC has no effect.

Dies sagt mir aber nichts über den Befehl des "Abbrechens" an sich aus...




MfG

jfheins 21. Nov 2004 19:16

Re: Windows Fenster mit Ok und abbrechen?
 
Also entweder stellst du dich jetzt ganz blöd an, oder du hast luckies post nicht gründlich genug gelesen, oder du bist so doof.

Denn die antwort zu deiner Frage
Zitat:

Ich brauche einen Befehl, den ich Hinter IDCANCEL setze (zwischen begin und end;)
der dem Programm sagt das die Messagebox und nicht das ganze Programm geschlossen wird,
also das "Abbrechen" umgesetzt wird, und danach suche ich.
ist bereits in 2 Antworten explizit enthalten, sodass man nur noch
:arrow: markieren klicken,
:arrow: [STRG] + [c] drücken,
:arrow: in Delphi Quelltext gehen und
:arrow: [STRG] + [v] drücken
muss.

P.S. Die eine Antwort ist auf Seite 2, zweites von oben ...

DbddhkP
*****Julius

Luckie 21. Nov 2004 19:29

Re: Windows Fenster mit Ok und abbrechen?
 
Wenn bei "Abbrechen" nichts passieren soll, dann schreib auch nichts hin zwischen begin und end vom IDCANCEL-Zweig. Und wenn du dich im OnCloseQuery Ereignis befindest damm setze dort CanClose auf False, dann schlie0ßt sich dein Programm auch nicht.

ehem. Benutzer 21. Nov 2004 19:34

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat von jfheins
Also entweder stellst du dich jetzt ganz blöd an, oder du hast luckies post nicht gründlich genug gelesen, oder du bist so doof.

Denn die antwort zu deiner Frage
Zitat:

Ich brauche einen Befehl, den ich Hinter IDCANCEL setze (zwischen begin und end;)
der dem Programm sagt das die Messagebox und nicht das ganze Programm geschlossen wird,
also das "Abbrechen" umgesetzt wird, und danach suche ich.
ist bereits in 2 Antworten explizit enthalten, sodass man nur noch
:arrow: markieren klicken,
:arrow: [STRG] + [c] drücken,
:arrow: in Delphi Quelltext gehen und
:arrow: [STRG] + [v] drücken
muss.

P.S. Die eine Antwort ist auf Seite 2, zweites von oben ...

DbddhkP
*****Julius

Danke es geht.


MfG

ehem. Benutzer 21. Nov 2004 19:43

Re: Windows Fenster mit Ok und abbrechen?
 
Zitat:

Zitat von Luckie
Wenn bei "Abbrechen" nichts passieren soll, dann schreib auch nichts hin zwischen begin und end vom IDCANCEL-Zweig. Und wenn du dich im OnCloseQuery Ereignis befindest damm setze dort CanClose auf False, dann schlie0ßt sich dein Programm auch nicht.

Das wollte ich die ganze Zeit wissen...
Und ja, jfheins und du haben Recht... Es stand bereits in vielen Beispielquelltexten,
habe es überlesen...
Tut mir leid...



MfG


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:41 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