[
OT]
Zitat von
changlee:
Ich verstehe aber nicht, was an himitsus code "böse" sein soll.... (ist doch alles ok so, oder übersehe ich was?)
Das 'With'-Schlüsselwort ist verpönt, auch wenn es Schreibarbeit spart.
Delphi-Quellcode:
procedure TMyClass.Setup;
begin
with TSetupForm.Create(self) do
try
MyObject := self;
ShowModal;
finally
Free;
end;
end;
Hier stellen sich zwei Fragen;
1. Welches 'ShowModal' wird aufgerufen, das von 'TMyClass' (wenn des diese Methode hätte), oder die der anonymen Instanz von TSetupForm?
2. Welches 'Free' wird aufgerufen?
Das erschließt sich dem Betrachter nicht. Es ist zwar irgendwie klar, aber führt zu Mißverständnissen und schwer zu findenden Fehlern (wenn z.B. Deine TSetupForm gar keine Methode ,'ShowModal' hätte, z.B. weil die etwas anders heißt), dafür aber TMyClass.
Zugegeben, in diesem konkreten Beispiel ist der Code gar nicht böse, aber als Regel gilt: "'With' ist böse". Es spricht nichts dagegen, mit 'With' zu arbeiten, aber da muss man dann genau wissen, was man tut.
[/
OT]
Aber der Thread hier dreht sich nicht um dieses, sondern um ein anderes Thema.