Titelleiste(?) entfernen

Kyrius

Erfahrenes Mitglied
Wie entferne ich die Titelleiste (bei Windoof der blaue Balken mit dem Programmnamen, heißt ja Titeleiste, oder?) bzw wie zwinge ich einen User, über einen Beenden-Button das Programm zu beenden?

Oder, alternativ dazu: Wie kann ich bestimmte Anweisungen ausführen lassen, wenn das Programm über den Beenden-Knopf in der Titelleiste beendet wird?
 
hi
ich hoffe ich kann dir weiter helfen, du möchtest wenn du auf den Button knopf oben rechts
drauf klickst das dann eine meldung erscheint mit ja, nein und Abbrechen, wenn du auf nein oder auf Abbrechen klickst das dan das Formular geöffnet bleibt, und wenn du auf ja klickst das dann das gesamte Formular geschlossen wird.
Also das kann man folgender maßen anstellen.
1. Aktiviere das Haupt Formular inden du einmal drauf klickst
2. Gehe zum Objektinspector und klicke auf Ereignisse
3. Und suche dann "OnCloseQuery" und klicke doppelt drauf
und gebe an der Curser position den folgende Quelltext ein.

int Knopf;
Knopf = Application->MessageBox ("Wollen sie wirklich das Programm beenden!", "Achtung", 3+48);
if ((Knopf == IDCANCEL) || (Knopf == IDNO))
CanClose = false;

if (Knopf == IDYES)
{
CanClose = true;
Application->Terminate();
}


damit müsste dein Problem gelößt sein, wenn du fehlermeldung bekommst schreib einfach, und ich helfe dir!
MFG Christian
 
Zuletzt bearbeitet:
Wenn du in den Eigenschaften des Formulars BorderStyle auf 'bsNone' setzt,
dann hat dein Fenster überhaupt keinen Rahmen mehr. Man kann das Fenster
aber trotzdem mit Alt-F4 schließen.

Jackie05's Lösung ist definitiv die sicherere, oder beides zusammen...

BadMourning
 
eine Sicherheitsabfrage ist eher zweitrangig.

Vorm Beenden des Programms sollen aber noch eingige Befehle abgehandelt werden. Über einen Button "Beenden" kein Problem, nur benutz den nicht jeder, solange es in der Titelleiste halt das Kreuz gibt, bzw die Tastenkombination Alt+F4 funktioniert.

Daher meine Frage, wie ich entweder den User über meinen Beenden-Button zwinge, oder die Befehle an das Kreuz hänge.
 
Ah ja, dann hilft dir vielleicht Folgendes:

1. Eigenschaften des Formulars:
(wenn du nicht maximieren/minimieren brauchst)
BorderIcons - biSystemMenu = FALSE (Titelleiste enthält nur Caption)
BorderStyle = bsSingle (keine Scrollbars)

2. Bei Klick auf deinen Beenden Button am Ende der Routine
entweder Close() oder die härtere Methode Application->Terminate()
rufen

BadMourning
 
hi Kyrius
also, ich verstehe nicht ganz was dein Problem ist,
kannst du es vieleicht ein bisschen deutlicher formulieren, vieleicht kann ich dir weiter helfen.
MFG Christian
 
BadMourning hat gesagt.:
Ah ja, dann hilft dir vielleicht Folgendes:

1. Eigenschaften des Formulars:
(wenn du nicht maximieren/minimieren brauchst)
BorderIcons - biSystemMenu = FALSE (Titelleiste enthält nur Caption)
BorderStyle = bsSingle (keine Scrollbars)

2. Bei Klick auf deinen Beenden Button am Ende der Routine
entweder Close() oder die härtere Methode Application->Terminate()
rufen

BadMourning

Close(); war mir schon klar :p aber danke, ich werde es bei Zeiten ausprobieren (im Moment sitze ich an einem anderen Ort)
 
Ok Kyrius, ich hab das nur der Vollständigkeit hingeschrieben, da
man hier ja nicht immer weiß, wie viel man voraussetzen kann,
und was wirklich ein Problem ist. Ich nehms mit einem Grinsen... :)

Mit meinen Ausführungen solltest du in jedem Fall weiterkommen,
ansonsten schließe ich mich Jackie05 an, soll heißen, dann
würde man schon noch ein bißchen mehr Information benötigen...

BadMourning
 
Hi!
Das Thema ist inzwischen zwar schon etwas älter, aber ich habe bislang noch nichts von der OnClose-Prozedur gelesen (im Objektinspektor auffindbar), in der man sämtliche vor dem beenden auszuführenden Befehle reinschreiben kann, u.A. auch speichern etc...

www.ai-gamecock
 

Neue Beiträge

Zurück