Entwickler-Ecke
Programmierwerkzeuge - Designer updatet meinen Code nicht
mkmk - Fr 18.07.08 10:50
Titel: Designer updatet meinen Code nicht
Guten Tag
Bis anhin hatte ich mit Vfp programmiert. Nun bin ich auf Delphi umgestiegen. Scheint viel maechtiger zu sein als Vfp. Weshalb ich dieses Verhaltensweisen von Delphi nicht vestehe:
Ich lösche im Designer eine Komponente. Der Code zu dieser Komponente, zBsp. btnOnClick, wird nicht gelöscht. Ich habe alle möglichen Delete's versucht: Del, CTRL+Del, Shift+Del ... der Code bleibt stehen.
Es scheint, dass ich irgendwas falsch machen. Kann mir bitte jemand auf die Sprünge helfen.
Nachtrag: Auch beim Aendern eines Komponenten-Namens habe ich Probleme. Wenn ich den Namen von btnOn nach btnEinschalten umaendere, wird zwar die Methode btnOnClick korrekt nach btnOnEinschalen unbenannt, nicht aber Referenzen in anderen Methoden.
Wenn ich also in irgendeiner Methode btnOn.Click() hatte, wird diese nicht nach btnEinschalten.click() umbenannt.
Christian S. - Fr 18.07.08 10:56
Das ist "as designed", denke ich.
Die Methode btnOnClick ist halt irgendeine Methode, die "zufällig" auch als Ereignisbehandlung für den Button benutzt wurde. Aber sie ist ja nicht untrennbar mit dem Button verbunden. Daher kann der Designer nicht wissen, ob Du sie vielleicht noch anderweitig verwenden möchtest.
mkinzler - Fr 18.07.08 10:56
Der Code gehört auch nicht zu dieser Komponente, sondern zum Formular. In der Komponente wird der Event nur mit der Methode verbunden. Der Code könte so von mehren Komponenten verwendet werden. auserdem brauch man so keine eigene Versionen der Klassen ableiten.
mkmk - Fr 18.07.08 11:05
Wenn es irgendeine Methode waere, wuerde ja der Designer die Namensaenderung an die Methode nicht weitergeben. Tut er aber. Aber nicht konsequent. Denn nach der Aenderung existiert ja ein btnOn.Click() nicht mehr und im Code schwirren noch solche Aufrufe, die beim Compilieren als Fehler auftauchen.
mkinzler - Fr 18.07.08 11:18
Bei Delphi sind Events keine Methoden sondern Properties. Das ermöglicht es Events für Komponenten zu binden ohne eigene Versionen für diese abzuleiten, was sonst notwendig wäre.
In FoxPro wird das automatisch erledigt. Ein Löschen einer Kpmponente hat keine Auswirkungen auf Code anderer Klassen (hier Formularklasse)
mkmk - Fr 18.07.08 11:23
Okay, jetzt habe ich es verstanden. Danke.
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!