Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - With <component> do begin wird ignoriert
trm - Mi 25.05.11 18:54
Titel: With <component> do begin wird ignoriert
Hallo,
ich bin stinksauer, weiß aber nicht, auf wen.
Es gibt zwei Möglichkeiten. Auf mich oder auf den Delphi7 Compiler.
Folgendes ist passiert. Ich habe ein langes With [component] do Konstrukt, in der ich bisher alle auf diese Komponente bezogen habe.
Ohne, dass ich in dem Konstruk etwas geändert habe (aber außerhalb dieser With - Anweisung), kommt es sporadisch vor, dass sich das Konstrukt nicht mehr auf das Object, sondern auf die Form, in der das Object ist, bezieht.
Kommt bei einigen Dingen der Compiler durcheinander?
Als Abhilfe habe ich das With entfernt und jedes Element des Objectes direkt angesprochen.
Der Fehler ist somit behoben.
Aber warum passiert das?
Gruß
Moderiert von
Narses: Topic aus VCL (Visual Component Library) verschoben am Mi 25.05.2011 um 22:29
jaenicke - Mi 25.05.11 19:06
Dass with eines der schlimmsten Konstrukte ist, das es in Delphi gibt, ist doch bekannt. Wer es nutzt, ist selbst schuld. :nixweiss:
Die Wirkung ist aber eigentlich immer die selbe. Nur durchschaut man eben oft nicht was eine Änderung ggf. zur Folge hat. Zum Beispiel bei verschachtelten with-Anweisungen wird es ganz undurchschaubar. Oder bei Variablennamen, die zufällig gleich heißen wie irgendein Bezeichner von Delphi (ok, das darf bei sauberem Code ohnehin nie vorkommen, wenn man ordentliche Bezeichner nimmt).
Jedenfalls gibt es viele Fehlerquellen bei with oder goto, die man eben nicht so schnell sieht. Deshalb verwende ich das generell nicht, insbesondere weil es meist auch nicht wirklich viel Sinn macht. Die paar Buchstaben, die ich zu tippen spare, werden von der Zeit, die mit with durch die fehlenden Debugmöglichkeiten und die Fehlersuche gefressen werden tausendmal aufgewogen...
trm - Mi 25.05.11 20:27
jaenicke hat folgendes geschrieben : |
| Dass with eines der schlimmsten Konstrukte ist, das es in Delphi gibt, ist doch bekannt. |
Mir nicht. Das war bisher immer ein gern genutztes Element :)
Danke für die Antwort.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!