Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#1

IF Assigned(EventMethode) zur DesignTime

  Alt 6. Nov 2017, 14:48
Ich habe da ein winziges Problemchen,
Assigned liefert falsche Werte, also False obwohl es True sein müsste.

Minimalbeispiel:
Delphi-Quellcode:
type
  TMyComp = class(TComponent)
  private
    FTest: TNotifyEvent;
    function TestStored: Boolean;
  published
    property TestProp: TNotifyEvent read FTest write FTest stored TestStored;
  end;

function TMyComp.TestStored: Boolean;
begin
  Result := Assigned(TestProp);
end;
Wie kann ich zur DesignTime feststellen, ob irgendwas zugewiesen ist, wenn Assigned nicht hilft? (in einem Setter/Getter/StoredProc)

Wenn ich hier einen Setter an dem Property habe und da im ObjektInspector ein Event zuweise, dann wird der Setter auch aufgerufen.



Auch eine Prüfung ob ein bestimmtes Event zugewiesen ist (im Contructor zugewiesen und im OI überschreibbar) funktioniert da nicht.
Delphi-Quellcode:
function TMyConnection.BeforeConnectStored: Boolean;
begin
  Result := Assigned(BeforeConnect) and (TMethod(BeforeConnect).Code <> @TMyConnection.DoBeforeConnect);
end;

constructor TMyConnection.Create(Owner: TComponent);
begin
  inherited;
  BeforeConnect := DoBeforeConnect;
end;
Und nein, ich muß mich leider so an die Events hängen, da die Komponenten keine Möglichkeit einer überschreibbaren virtuellen Methode bietet.
(TPgConnection, aber der Schrott fängt schon bei DB Access von Devart an)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat