| Autor |
Beitrag |
Daniel L.
      
Beiträge: 140
Erhaltene Danke: 14
W7, W8
TurboD Prof, Delphi Community
|
Verfasst: Mi 03.11.10 14:34
Hi,
wenn ich eine goto Anweisung zu einem definierten Label innerhalb eines 'with do' Blockes schreibe, bekomme ich im Strukturfenster einen Fehler angezeigt: ('Void' enthält kein Element namens 'L' in Zeile 32).
Die Anwendung lässt sich jedoch fehlerfrei compilieren und richtig ausführen!!
Hier ein (unsinniges) Beispiel:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); var p : TPoint; label L; begin with p do begin goto L; L: end; end; |
kommentiert man "with p do" aus, gibt es keine Fehlermeldung
mit Gruss und  : Daniel
edit: TurboDelphi
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 03.11.10 14:37
Vermeide die goto-Anweisung. In den meisten Fällen sind sie überflüssig und machen den Programmcode nur unübersichtlich.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 03.11.10 14:41
Wenn du with benutzt, musst du damit leben. Damit kann man eben nur sehr schlecht debuggen, und diese falschen Fehleranzeigen sind die Dreingabe.
Und dann auch noch goto dazu... naja, was soll man da schon noch sagen...
|
|
platzwart
      
Beiträge: 1054
Erhaltene Danke: 78
Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
|
Verfasst: Mi 03.11.10 15:44
Du solltest heutzutage weder 'with' noch 'goto' benutzen, das sind Relikte aus der Programmiersteinzeit.
_________________ Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Mi 03.11.10 15:45
Der Bug wurde in zwischen wohl gefixt.
Ich verwende weder with noch goto. Beides ist für Leute, die den Code nicht bereits gut kennen relativ mühsam zum Lesen und beide sind anfällig für Bugs.
// platzwart war wohl schneller 
|
|
Daniel L. 
      
Beiträge: 140
Erhaltene Danke: 14
W7, W8
TurboD Prof, Delphi Community
|
Verfasst: Mi 03.11.10 16:41
...wobei einem with do viel Schreibarbeit anmehmen kann.
Daniel
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Mi 03.11.10 17:00
Daniel L. hat folgendes geschrieben : | | ...wobei einem with do viel Schreibarbeit anmehmen kann. |
Ich benutze dafür den Quelltexteingabe Helfer des CNPacks. Ist fast so komfortabel wie With, aber eben eindeutig.
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 03.11.10 17:45
Daniel L. hat folgendes geschrieben : | | ...wobei einem with do viel Schreibarbeit anmehmen kann. |
Wenn man eine Zwischenvariable plus die genannten CnWizards benutzt, nicht viel.
Für diesen kleinen Aufwand bekommt man aber sehr viel. Direkte Auswertung per Mouseover beim Debuggen, Übersichtlichkeit, Eindeutigkeit, ...
|
|