Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi record mit funktion verknüpfen (https://www.delphipraxis.net/128059-record-mit-funktion-verknuepfen.html)

Bong 23. Jan 2009 11:15


record mit funktion verknüpfen
 
Guten Tag,

ich habe eine frage...
und zwar würde ich gerne, wie der titel schon sagt, ein record mit ner function "verknüpfen"..
das stell ich mir ungefähr so vor:

XYZ = record
Name: String[255];
Prod: Produktion(); {eine vorher definierte funktion}
cost: Kosten();
end;


ist das möglich, und wenn ja, wie?
ich möchte da später dann in etwa so drauf zugreifen:

Gebaude: array of XYZ;

Gebaude[1].cost(4) {also Kosten für Stufe 4 des Gebäudes, die dann über die funktion Kosten() berechnet werden sollen}

schonmal danke im vorraus


lg

Luckie 23. Jan 2009 11:20

Re: record mit funktion verknüpfen
 
Verknüpft man eine Datenstruktur (Record) mit Code zur Manipulation der Daten, hat man eine Klasse. In Delphi können zwar auch record Prozeduren beinhalten, aber ich glaube, das sind noch Relikte aus der Steinzeit von Pascal und Delphi.

Bong 23. Jan 2009 11:22

Re: record mit funktion verknüpfen
 
Zitat:

Zitat von Luckie
Verknüpft man eine Datenstruktur (Record) mit Code zur Manipulation der Daten, hat man eine Klasse. In Delphi können zwar auch record Prozeduren beinhalten, aber ich glaube, das sind noch Relikte aus der Steinzeit von Pascal und Delphi.

okay danke für die schnelle antwort.. hab lange nicht mehr geproggt, dann werd ich mir das mal anschaun :)

Luckie 23. Jan 2009 11:27

Re: record mit funktion verknüpfen
 
Hier gibt es ein Klasse(n) Tutorial für Delphi: http://delphitutorials.michael-puff.de

Reinhard Kern 23. Jan 2009 11:50

Re: record mit funktion verknüpfen
 
Zitat:

Zitat von Luckie
Verknüpft man eine Datenstruktur (Record) mit Code zur Manipulation der Daten, hat man eine Klasse. In Delphi können zwar auch record Prozeduren beinhalten, aber ich glaube, das sind noch Relikte aus der Steinzeit von Pascal und Delphi.

Hallo,

Records mit Prozeduren sind viel jünger als Objekte und Klassen. Meiner Meinung nach sind sie ausserdem überflüssig und fragwürdig - die einfache Recordstruktur, die man auch mit anderen Sprachen austauschen kann (z.B. WIN-API) geht verloren, und im Endeffekt hat man doch nichts anderes als eben eine Klasse, nur dass sie Record heisst. Oder habe ich da was übersehen?

Gruss Reinhard

DeddyH 23. Jan 2009 11:54

Re: record mit funktion verknüpfen
 
Genau diese Frage habe ich mir auch schon gestellt. Einfache Datenstruktur -> Record, Struktur mit Funktionalität -> Klasse, wozu ist das neuerdings vermischt worden?

sirius 23. Jan 2009 12:02

Re: record mit funktion verknüpfen
 
:gruebel: Ging es nicht darum, dass der OP einen Funktionszeiger speichern will?

Luckie 23. Jan 2009 12:04

Re: record mit funktion verknüpfen
 
Zitat:

Zitat von sirius
:gruebel: Ging es nicht darum, dass der OP einen Funktionszeiger speichern will?

Mit selbigen werde ich als Programmierer aber doch gar nicht konfrontiert oder? Das heißt, mir als Programmierer kann es doch egal sein, was intern passiert.

Apollonius 23. Jan 2009 15:48

Re: record mit funktion verknüpfen
 
Wieso geht bitte durch Methoden die WinAPI-Kompatibilität von Records verloren? Das ist doch Blödsinn. Diese Methoden sind wie bei Klassen auch ganz normale Routinen, die einen Self-Parameter besitzen und in einem speziellen Namensraum abgelegt sind. Und ich finde das durchaus sehr nützlich. Wenn eine bestimmte Routine eindeutig einem Record zugeordnet sind, sollte ich sie auch als Methode deklarieren. Der Vorteil von Records gegenüber Klassen, nämlich der deutlich geringere Overhead (u.A. dadurch, dass Records auf dem Stack abgelegt werden können), bleibt.

Und der Threadersteller hat nicht deutlich gemacht, ob er nun eine Methode oder einen Funktionszeiger will.

mkinzler 23. Jan 2009 16:15

Re: record mit funktion verknüpfen
 
Zitat:

Oder habe ich da was übersehen?
Ja die Methoden von Records sind Klassenmethoden. Ausserdem unterstützt Delphi bisher keine Klassenoperatoren für Klassen, sondern nur für Records. Deshalb haben die Records doch noch eine Daseinsberechtigung


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2      

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