AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Close geht nicht zum Programmbeenden

Ein Thema von JPSelter · begonnen am 14. Feb 2005 · letzter Beitrag vom 14. Feb 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 14:12
Aber die Anwendung soll den Benutzer ja nur informieren, wenn sie schonmal geöffnet wurde, aber nicht ihm die Wahl lassen, ob er sie vielleicht doch 2mal offen haben will
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#12

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 14:14
Hallo Chegga,

und wo soll da der Unterschied zu dem hier sein (außer der sinnbefreiten Abfrage auf Ok, nachdem das Form sowieso geschlossen werden soll...)

Delphi-Quellcode:
ShowMessage('Das Programm ist bereits geöffnet');
Close; //oder Application.Terminate, je nachdem was dir besser gefällt
Der sinnvollste (und auch normalerweise verwendete) Weg ist aber der, dass man einen Mutex o.ä. in der Projektdatei erstellt, und dort auch prüft ob er bereits existiert.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 14:16
Hi,

mit folgendem Code kannst du abfragen ob deine Anwendung schon läuft:
Delphi-Quellcode:
unit u_Instanz;

interface

implementation

uses windows,Dialogs,sysutils, u_SBNBUCH;

var mHandle: THandle; // Mutexhandle

Initialization

    mHandle := CreateMutex(nil,True,'MEINEANWENDUNG');
    if GetLastError = ERROR_ALREADY_EXISTS then
    begin
        // Anwendung läuft bereits
        ShowMessage('MEINEANWENDUNG wird schon ausgeführt!!!');
        halt;
    end;

finalization // ... und Schluß
  if mHandle <> 0 then CloseHandle(mHandle)
end.
Falls sie schon läuft bekommst du eine Meldung.

Mfg
André
André
  Mit Zitat antworten Zitat
Benutzerbild von JPSelter
JPSelter

Registriert seit: 24. Jan 2005
Ort: Attendorn/Sauerland
235 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 14:22
Die Anwendung soll von mehreren PCs im Netzwerk ausführbar sein. Keine Ahnung, ob Dein Quelltext auch im Netzwerk funktioniert. Aber ich habs jetzt erstmal über eine Textdatei gelöst, in der der Status, ein Timestamp und der User drinsteht.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#15

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 17:50
Moin!

Warum "empfehlen" hier noch so viele User die Haudrauf Methode "Application.Terminate" ?? Das wurde doch nun schon mehrfach geklärt, das dieses Probleme bereitet - genauso wie ein "Halt()" Aufruf im FormCreate. Sprint hatte dazu auch schon die Erklärung geschrieben (Application.MainForm ist im FormCreate noch nicht gesetzt und dadurch wird die MainForm nicht wieder abgeräumt, bzw. nicht sauber...).

Also, nehmt endlich Abstand sowas weiter zu empfehlen...

Zum anderen: Die Mainform ist ein Teil der Applikation - das Hauptfenster. Nun ist die Frage warum noch das Hauptfenster angelegt wird, wenn man sich schon vorher einig sein könnte, das die Applikation beendet werden sollte. Daher wäre es doch eigentlich Blödsinn noch die MainForm anzulegen, oder?

Also:
Mutex, Named Pipe, FindWindow/PostMessage, etc - aber nicht unbedingt im FormCreate.

MfG
Muetze1
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#16

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 18:13
Eine Lösung würde sich hier mit:
initialization bzw. finalization anbieten.
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

Registriert seit: 5. Nov 2004
Ort: Kirchheim
453 Beiträge
 
Delphi 7 Architect
 
#17

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 19:34
Hi,

Zitat von bigg:
Eine Lösung würde sich hier mit:
initialization bzw. finalization anbieten.
Du hast schon gelesen was MagicAndre1981 geschrieben hat?!

MfG Marc
Marc P.
Grüße aus Kirchheim Teck
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#18

Re: Close geht nicht zum Programmbeenden

  Alt 14. Feb 2005, 20:21
gar nicht gesehen
ich würde aber keinen mutex erzeugen,
eher ein virtuelles Fenster
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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