Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variable und Eigenschaftswert vergleichen - prozeduraler Typ (https://www.delphipraxis.net/118062-variable-und-eigenschaftswert-vergleichen-prozeduraler-typ.html)

Panthrax 30. Jul 2008 20:25


Variable und Eigenschaftswert vergleichen - prozeduraler Typ
 
Hallo.

Ich möchte eine Variable und einen Eigenschaftswert vergleichen -- Besonderheit: prozeduraler Typ.

Die Compiler-Fehlermeldung ist: "Nicht genügend wirkliche Parameter". Wie kann ich die Werte vergleichen?

Delphi-Quellcode:
program Vergleich;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
  TMyFunc = function (const Item1, Item2: Pointer): Integer;

  TMyClass = class
    private
    FMyProp: TMyFunc;

    public
    property MyProp: TMyFunc read FMyProp write FMyProp;

    constructor Create;
  end;

function MyFunc(const Item1, Item2: Pointer): Integer;
begin
  Result:=0;
end;

{ TMyClass }

constructor TMyClass.Create;
begin
  inherited;
  MyProp:=MyFunc;
end;

var
  F: TMyFunc;
  Instance: TMyClass;
begin
  F:=MyFunc;
  Instance:=TMyClass.Create;
  try
    { Compiler-Fehlermeldung:
    E2035 Nicht genügend wirkliche Parameter
    if F =| Instance.MyProp then }
    if F = Instance.MyProp then
      WriteLn('gleich')
    else
      WriteLn('ungleich');
  finally
    Instance.Free;
  end;
end.

Hawkeye219 30. Jul 2008 20:38

Re: Variable und Eigenschaftswert vergleichen - prozeduraler
 
Hallo Panthrax,

so sollte es gehen:

Delphi-Quellcode:
// if F = Instance.MyProp then
if @F = @Instance.MyProp then
Gruß Hawkeye

Panthrax 30. Jul 2008 20:53

Re: Variable und Eigenschaftswert vergleichen - prozeduraler
 
Danke! Geht!


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz