AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Mehrere Formulare schließen (mit Sicherheitsfrage)

Mehrere Formulare schließen (mit Sicherheitsfrage)

Ein Thema von ndy · begonnen am 18. Mär 2015 · letzter Beitrag vom 19. Mär 2015
Antwort Antwort
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#1

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 18. Mär 2015, 19:39
Bitte nie so etwas
if Frm_Form2.Beenden = False then nutzen, sondern immer
if not(Frm_Form2.Beenden) then
Weshalb?
Da sehe ich keinen Sinn, warum man nicht auch Variante 1 benutzen soll, wenn man dies bevorzugt.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 18. Mär 2015, 20:35
Bitte nie so etwas
if Frm_Form2.Beenden = False then nutzen, sondern immer
if not(Frm_Form2.Beenden) then
Weshalb?
Da sehe ich keinen Sinn, warum man nicht auch Variante 1 benutzen soll, wenn man dies bevorzugt.
Mal abgesehen davon das die Benutzung der globalen Form-Variablen in der Form-Klasse ein klassisches Eigentor werden kann und somit statt Frn_Form2.Beenden immer Self.Beenden oder schlicht und ergreifend Beenden benutzt werden sollte, ist gegen das Verwenden von if Self.Beenden = False then erst mal nichts einzuwenden.

Doof ist nur, dass diese Leute, die sich das angewöhnen eben dann an anderer Stelle analog auch if Self.Beenden = True then schreiben. Und dort liegen dann wieder potentielle Fehlerquellen (ist in diesem Forum schon bis zum Erbrechen durchgekaut worden und bei Interesse bitte die Forensuche benutzen und bitte hier nicht wieder aufwärmen).

Generell würde ich die Methode sogar umbenennen um zu verdeutlichen, dass hier in der Funktion noch eine Entscheidung getroffen wird:
Delphi-Quellcode:
if not Self.ShouldClose
then
  ...
// oder anders herum
if Self.ShouldClose
then
  ...
Schon liest sich das wie Prosa ... und darum geht es bei der Programmierung auch: Robuster und selbsterklärender Code
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (18. Mär 2015 um 20:38 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 19. Mär 2015, 04:00
...ist gegen das Verwenden von if Self.Beenden = False then erst mal nichts einzuwenden.
Doch: Schlechter lesbar, da keine Prosa. Es heißt doch 'Wenn ich nicht beenden will' und nicht 'Wenn 'Beenden' falsch ist'.
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#4

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 19. Mär 2015, 10:02
Doof ist nur, dass diese Leute, die sich das angewöhnen eben dann an anderer Stelle analog auch if Self.Beenden = True then schreiben. Und dort liegen dann wieder potentielle Fehlerquellen (ist in diesem Forum schon bis zum Erbrechen durchgekaut worden und bei Interesse bitte die Forensuche benutzen und bitte hier nicht wieder aufwärmen).
Ich wollte hier ja keine Grundsatzdebatte auslösen, sondern lediglich darlegen, dass es grundsätzlich ersteinmal nicht falsch ist, das so zu machen.

Dass die Prüfung auf "true" eine Fehlerquelle sein kann, wenn man nicht weis was man da prüft, ist auch richtig.

Aber es kann auch vorkommen, dass man bewußt auf die Konstante "True" if (RückgabeWert() = true) then oder "False" if (RückgabeWert() = false) then prüfen MUSS, damit man das richtige Ergebnis erhält und nicht auf irgendetwas was Wahr if (RückgabeWert()) then oder Falsch if not (RückgabeWert()) then ERGIBT.

Und dies wird meist in den ganzen Diskussionen vergessen zu erwähnen.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Mehrere Formulare schließen (mit Sicherheitsfrage)

  Alt 19. Mär 2015, 10:34
Doof ist nur, dass diese Leute, die sich das angewöhnen eben dann an anderer Stelle analog auch if Self.Beenden = True then schreiben. Und dort liegen dann wieder potentielle Fehlerquellen (ist in diesem Forum schon bis zum Erbrechen durchgekaut worden und bei Interesse bitte die Forensuche benutzen und bitte hier nicht wieder aufwärmen).
Ich wollte hier ja keine Grundsatzdebatte auslösen, sondern lediglich darlegen, dass es grundsätzlich ersteinmal nicht falsch ist, das so zu machen.
Das habe ich auch nicht bestritten und auch entsprechend dargelegt
ist gegen das Verwenden von if Self.Beenden = False then erst mal nichts einzuwenden.
(Scheint eine neue Mode zu sein, in den Beiträgen nur das zu lesen, was man da lesen möchte, Siehe Beitrag #6)
Dass die Prüfung auf "true" eine Fehlerquelle sein kann, wenn man nicht weis was man da prüft, ist auch richtig.
Jepp
Aber es kann auch vorkommen, dass man bewußt auf die Konstante "True" if (RückgabeWert() = true) then oder "False" if (RückgabeWert() = false) then prüfen MUSS, damit man das richtige Ergebnis erhält und nicht auf irgendetwas was Wahr if (RückgabeWert()) then oder Falsch if not (RückgabeWert()) then ERGIBT.

Und dies wird meist in den ganzen Diskussionen vergessen zu erwähnen.
Genau das meinte ich mit dem wiederholten Breittreten von direkten True und False Vergleichen. Ergänze doch diesen Aspekt in einem der bereits vorhandenen Diskussionen (am besten dort auch gleich mit einem konkreten Beispiel, wo es deiner Meinung nach Sinn macht).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (19. Mär 2015 um 10:37 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:19 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