Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler bei Klassendeklaration (https://www.delphipraxis.net/47284-fehler-bei-klassendeklaration.html)

faux 8. Jun 2005 20:30


Fehler bei Klassendeklaration
 
Ich habe folgende Klasse;
Delphi-Quellcode:
interface

uses
  StdCtrls, JvSimScope, Classes, JvSwitch, Controls, Windows, Messages,
  JvDialButton, Graphics;

type
  TPatient = record
    Puls: Byte;
  end;

type
  TEkg = class(TGroupBox)
    (...)
    vPatient: TPatient;
    (...)
  public
    constructor Create(AOwner: TComponent); override;
    (...)
  end;
jedenfalls gibts in Zeile 15 immer einen Fehler:
Code:
[Fehler] Unit2.pas(20): Das Published-Feld 'vPatient' ist weder vom Typ class noch interface
Was bedeutet das???

Dax 8. Jun 2005 20:40

Re: Fehler bei Klassendeklaration
 
Du kannst keine Records publizieren ;) Aber: Da dein Record nur ein Feld hat, publiziere doch das Feld ;)

Optimal wäre natürlich, den Record in eine Klasse unzuwandeln.

Sanchez 8. Jun 2005 20:41

Re: Fehler bei Klassendeklaration
 
Hallo,

Das bedeutet ganz einfach, dass TPatient weder eine Klasse noch ein Interface ist. Steht doch dort :mrgreen:
Im published-Abschnitt dürfen keine Variablen, wie Records, usw. stehen. Was Variablen angeht ist der published-Abschnitt den Komponenten vorbehalten.

Eine Variable hat dort auch nichts verloren. Die gehört nach private oder protected. Je nachdem, ob Nachfahren drauf zugreifen können sollen.

grüße, daniel

faux 8. Jun 2005 21:14

Re: Fehler bei Klassendeklaration
 
Ok, danke...

Der record hätte mit nur einer Variable auch wenig Sinn, ich habe ihn nur nicht vervollständigt, nachdem ich sah, dass es nicht funktioniert...

Sanchez 8. Jun 2005 21:25

Re: Fehler bei Klassendeklaration
 
Nein. Ich meinte, dass Member-Variablen nicht nach public oder published gehören.
Membervariablen gehören geschützt und von außen nur durch Funktionen und Properties verändert.


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