AGB  ·  Datenschutz  ·  Impressum  







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

Anwendung todsicher beenden, aber wie??

Ein Thema von rollstuhlfahrer · begonnen am 18. Feb 2008 · letzter Beitrag vom 24. Mär 2008
Antwort Antwort
Benutzerbild von bigg
bigg

Registriert seit: 1. Jul 2007
155 Beiträge
 
#1

Re: Anwendung todsicher beenden, aber wie??

  Alt 19. Feb 2008, 10:43
Zitat von Luckie:
Der Speicher wird von Windows wieder freigegeben. Es ist zwar kein sehr schöner Programmierstil andere hinter sich aufräumen zu lassen, aber das ist nicht das Problem. Das eigentliche Problem ist, dass die Referenzzähler von geladenen DLLs nicht dekrementiert werden und Windows diese dann nicht aus dem Speicher schmeissen kann, wenn sie nicht mehr benötigt werden.
Jein. Unter NT-Systemen mag diese Aussage stimmen. Ältere Systeme werden da nicht ganz so gründlich sauber machen.

Zitat von Luckie:
Schlechten Programmierstil aufgrund von Unzulänglichkeiten der Entwicklungsumgebung vorzuziehen, finde ich falsch. Lieber sauber programmieren und die paar nötigen Änderungen von Hand in der Projektdatei vornehmen.
Seh ich auch so.

Delphi-Quellcode:
label
   Ende;
begin
  Application.CreateForm(TPassWort, Passwort); // Wenn PWD falsch, dann wird Application.Terminate aufgerufen
  if Application.Terminated then
    goto Ende; // wir sind fertig
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  ...
  Application.Run;
  Ende:
end;
Hier ein Label zu verwenden ist schon ziemlich strange und lässt wie Luckie schon sagte auf schlechten Programmierstil schließen.
Warum nicht so:

Delphi-Quellcode:
  Application.Initialize;
  Application.CreateForm(TPassWort, Passwort);
  if (Passwort <> nil) then
  begin
    if (Passwort.Correct) then
    begin
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      Application.Run;
    end;
  end;
oder so:

Delphi-Quellcode:
  begin
    Application.Initialize;
    Application.CreateForm(TPassWort, Passwort);
    Application.Run;
  end;

  procedure TPassWort.Login_Correct_Click(Sender: TObject);
  begin
    if (Self.Correct) then
    begin
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
    end
    else
      Self.Close
  end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 06: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-2025 by Thomas Breitkreuz