AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Not in edit mode

Ein Thema von karolus · begonnen am 8. Aug 2020 · letzter Beitrag vom 9. Aug 2020
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.727 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Not in edit mode

  Alt 9. Aug 2020, 12: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.
Delphi-Tage 2005-2014

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

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
1.699 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: Not in edit mode

  Alt 9. Aug 2020, 14:02
Ja, den Punkt auch.
Ok, dann wäre die Frage wo Form1 deklariert ist in deinem Programm.

Sprich: ist es in der selben Unit deklariert wie das von dir gezeigte OnShow Event?
Falls ja dürfte Entfernen von Form1. in der OnSHow nicht zu unkeklarierten Dingen
Fehlern führen.

Wir versuchen dir einfach guten und weniger fehleranfälligen Stil beizubringen.
Natürlich musst du uns da etwas steuern, da wir nicht wissen können, was du schon
alles weisst und kannst.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
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 11:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf