Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Not in edit mode (https://www.delphipraxis.net/205173-not-edit-mode.html)

himitsu 9. Aug 2020 11:33

AW: Not in edit mode
 
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. :zwinker:



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)

TurboMagic 9. Aug 2020 13:02

AW: Not in edit mode
 
Zitat:

Zitat von karolus (Beitrag 1471417)
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 Uhr.
Seite 2 von 2     12   

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