Autor Beitrag
mkmk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Fr 18.07.08 10:50 
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.


Zuletzt bearbeitet von mkmk am Fr 18.07.08 10:56, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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.

_________________
Markus Kinzler.
mkmk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: 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)

_________________
Markus Kinzler.
mkmk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Fr 18.07.08 11:23 
Okay, jetzt habe ich es verstanden. Danke.