
Zitat von
himitsu:
Delphi-Quellcode:
if @DownloadBegin <> nil then
DownloadBegin(CurrentDownload);
if @DownloadEnd <> nil then
DownloadEnd(CurrentDownload);
if @DownloadWork <> nil then
begin
dieses ist immer <> nil, denn die Variablen sind immer vorhanden
Delphi-Quellcode:
if Assigned(DownloadBegin) then
DownloadBegin(CurrentDownload);
if Assigned(DownloadEnd) then
DownloadEnd(CurrentDownload);
if Assigned(DownloadWork) then
begin
// und wenn schon NIL, dann eher so
if Pointer(DownloadBegin) <> nil then
DownloadBegin(CurrentDownload);
Ein einfaches @ ermittelt den eigentlichen Wert des Methodenzeigers, erst @@ die Adresse. Das klingt seltsam, ist aber so. Insofern ist auch der ursprüngliche Code korrekt.
Insgesamt finde ich die Benennungskonventionen im Code etwas seltsam. Normalerweise erhält das hinter einem Property stehende Feld als Name einfach ein f und den Namen der Eigenschaft. Präfixe wie bol-, int- usw. halte ich für unpraktisch.