Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fuction in Record?? (https://www.delphipraxis.net/150402-fuction-record.html)

TitanNano 15. Apr 2010 17:47


Fuction in Record??
 
Hi,
ist es irgend wie möglich eine Funktion in ein Record ein zu bauen?? :?
Wenn ja dann wie :?: :?:

wicht 15. Apr 2010 17:53

Re: Fuction in Record??
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure MyFormFunc;
  public
    { Public-Deklarationen }
  end;

  TMyFunc = procedure() of object;

  TRec = record
    MyFunc: TMyFunc;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
var
  R: TRec;
begin
  R.MyFunc := MyFormFunc;
  R.MyFunc();
end;

procedure TForm1.MyFormFunc;
begin
  ShowMessage('asdf!');
end;
Edit: Ich glaube ich habe dich falsch verstanden... Lasse es trotzdem erstmal so stehen...

mkinzler 15. Apr 2010 17:53

Re: Fuction in Record??
 
Ja aber erst in den neuesten Delphiversion. Sonst musst du halt die "alte" Pascal-OOP mit OBJECT verwenden

himitsu 15. Apr 2010 18:23

Re: Fuction in Record??
 
Ab Delphi 2006 / Turbo Telphi ist sowas möglich ... selbe Syntax, wie bei Objekten.
Delphi-Quellcode:
type
  TRec = record
    MyFunc: TMyFunc;
    function test: Integer;
  end;

function TRec.test: Integer;
begin
end;

TitanNano 15. Apr 2010 18:28

Re: Fuction in Record??
 
das mit der Funktion klappt, doch beim definieren wenn ich den Ort angeben will an dem die Funktion liegt, kommt der Fehler "VisualWidow.pas(68): E2037 Deklaration von 'Layout' unterscheidet sich von vorheriger Deklaration".
Delphi-Quellcode:
 
procedure TVFVisualWindow.Layout.GetCorners(linksT, rightT, leftD, rightD: string);
ich habe delphi 2005 und ich hab das von wicht ausprobiert.

uligerhardt 15. Apr 2010 20:16

Re: Fuction in Record??
 
Zitat:

Zitat von TitanNano
das mit der Funktion klappt, doch beim definieren wenn ich den Ort angeben will an dem die Funktion liegt, kommt der Fehler "VisualWidow.pas(68): E2037 Deklaration von 'Layout' unterscheidet sich von vorheriger Deklaration".
Delphi-Quellcode:
 
procedure TVFVisualWindow.Layout.GetCorners(linksT, rightT, leftD, rightD: string);
ich habe delphi 2005 und ich hab das von wicht ausprobiert.

Na dann zeig doch mal die "vorherige Deklaration". :mrgreen:

Klaus01 15. Apr 2010 20:31

Re: Fuction in Record??
 
Zitat:

Zitat von TitanNano
..
ich habe delphi 2005 und ich hab das von wicht ausprobiert.

siehe Post #4

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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