![]() |
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 |
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.
|
Re: record mit funktion verknüpfen
Zitat:
|
Re: record mit funktion verknüpfen
Hier gibt es ein Klasse(n) Tutorial für Delphi:
![]() |
Re: record mit funktion verknüpfen
Zitat:
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 |
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?
|
Re: record mit funktion verknüpfen
:gruebel: Ging es nicht darum, dass der OP einen Funktionszeiger speichern will?
|
Re: record mit funktion verknüpfen
Zitat:
|
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. |
Re: record mit funktion verknüpfen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 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