Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#11

AW: Not in edit mode

  Alt 9. Aug 2020, 11:33
Wegwerf: Kurzes Programm, welches bald wieder gelöscht wird und man nicht "unnötig" Arbeit reinstecken will. (wobei, siehe nachfolgend das "immer")
Gut, gibt es nur eine Form, dann ist der Name schon "eindeutig", aber auch nicht, sobald mehrere Programme aktiv sind. (das fällt dann auf, wenn man GUI-Testframewörks oder eine Fernsteuerung drauf lossässt)
Am Einfachsten immer "allem" einen eindeutigen Namen geben, dann kann man auch nicht mal was vergessen, wenn es schon fast automatisiert sofort gemacht wird, sobald man was erstellt.
(Die Form heißt so ähnlich wie die Unit und wenn es die einzige Unit ist, dann kann sie auch so ähnlich die das Programm heißen ... jeweils mit entsprechendem Prefix/Postfix)


Wo kommen denn nun diese Fehler? (an welcher Stelle im Code)


Wo hast'e denn gelernt/gefunden, wie man diese Variable benutzt?
Besser wäre es ja sie Ursache auch gleich zu beseitigen, damit es nicht noch jemand so lernt.
(du glaubst garnicht wieviele Veraltetes oder gar Falsches sich hartnäckig verbreitet)

Analogie zur Wirklichkeit:
Du bist daheim (in deiner Klasse), aber fragst erstmal den Staat wo du wohnst (die Variable), um den Schrank im Schlafzimmer zu finden (das auf/in deiner Form).
Bist du aber umgezogen oder wo anders und die Fragestelle hat noch die andere/falsche Adresse, dann landest du auch im falschen Schrank.



Hier wird es immer ohne gehen und vor allem an dieser Stelle ist diese Variable auch ein Fehler.
Delphi-Quellcode:
procedure TForm1.Irgendwas(...)
begin
  // hier bist schon in Form1 drin, also ist die Variable [S]nicht nötig[/S] Fehl am Platz.
end;
In einem WITH innerhalb dieser Methode, da würde SELF helfen,
auch wenn man eher sehen sollte ob/wie man das WITH los wird.

In einer globalen/externen Prozedur, da kann man sich überlegen die ins PRIVATE seiner Klasse zu verschieben,
oder man übergibt die Instanz als Parameter/Property/...

Und z.B. aus einer anderen Form,
OK, da wäre es eine Möglichkeit, aber es gibt auch andere Lösungen.



Grundsätzlich ist es ganz einfach
  • Sobald man derartige Variablen benutzt, sollte man sich einwas fragen:
    Ist es wirklich nötig, dass ich "hier" dieser potentielle Fehlerquelle einbaue?
    Außer man greift von außerhalb der Form auf Diese zu. (wobei es da oft "bessere" Lösungen gibt)
  • es wäre am Besten diese Variable gleich zu löschen ... weil dann kommt man garnicht erst auf diese Idee (aber da muß man erstmal den Code in der DPR anpassen, für die automatisch erzeugten Forms)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 9. Aug 2020 um 11:42 Uhr)
  Mit Zitat antworten Zitat