Klasse wird nicht erweitert ?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Klasse wird nicht erweitert ?

Beitrag von pluto »

Hallo,
habe gestern eine Neue Klasse in meinem Paint2 eingeführt...

und habe dort ein paar Eigenschaften Definiert:


Code: Alles auswählen

type
 
  { TPaint2ImageItem }
 
  TPaint2ImageItem = class
  private
    fAllignCaption: Integer;
    FCaption: String;
    fImageIndex: Integer;
    fImagelist: String;
    fImageName: Integer;
    fLink: Boolean;
    fVisible: Boolean;
  published
    // soll die Grafik angezeigt werden ?
    property Visible:Boolean read fVisible write fVisible;
    // soll die Grafik mit einer Imagelist verbunden werden
    // sobald sich die eigenschaft auf true gesetzt wird
    // wird die Grafik nicht upgedatet wenn die Grafik in der
    // Imagelist geändert wird.
    property Link:Boolean read fLink write fLink;
    {
      Der Name der entsprechenden Imageliste
      im moment nur als String, später soll eine
      comboBox kommen.
    }

    property ImageList:String read fImagelist write fImageList;
    {
      Der Index der in der Imagelist.
    }

    property ImageIndex:Integer read fImageIndex write fImageIndex;
    {
      Wird eine ImageName genutzt wird, auto. nach dem
      namen in der liste gesucht, kann unter umständen
      etwas länger dauern
    }

 
    property ImageName:Integer read fImageName write fImageName;
    {
      Wenn ein Text eingegeben wurde, soll eine Text
      an der angeben Position gezeichnet werden.
      z.b. in der Mitte von Oben.
 
    }

    property Caption:String read FCaption write fCaption;
 
    {
      Die aussrichtung vom Text der angezegit werden soll.
      folgende richtungen sollen möglich sein:
      1: Oben Mitte
      2: Unten Mitte
      3: Lings Mitte
      4: Rechts Mitte
    }

    property alignCaption:Integer read fAllignCaption write fAllignCaption;
  end;
 
  // alle Objekte die eine Fläche haben sollten
  // von dieser Klasse abgeleitet werden !
 
  { TPaint2BaseSurfaceObj }
 
  TPaint2BaseSurfaceObj = class(TPaint2BasesObj)
  public
    constructor Create(value:TBitMap);
  private
    fImageProp: TPaint2ImageItem;
    getFimageProp: TPaint2ImageItem;
    setFImageProp: TPaint2ImageItem;
    function GetImageProp:TPaint2ImageItem;
    procedure SetImageProp(Value:TPaint2ImageItem);
  published
    property ImageProp:TPaint2ImageItem read getFimageProp write  setFImageProp;
 
  end;
 
 
implementation
 
{ TPaint2BaseSurfaceObj }
 
constructor TPaint2BaseSurfaceObj.Create(value:TBitMap);
begin
  inherited Create(Value);
  fImageProp:=TPaint2ImageItem.Create;
end;
 
function TPaint2BaseSurfaceObj.GetImageProp: TPaint2ImageItem;
begin
  result:=fImageProp;
end;
 
procedure TPaint2BaseSurfaceObj.SetImageProp(Value: TPaint2ImageItem);
begin
  fImageProp:=Value;
end;
 
end.

so alle Objekte die eine Fläche haben sind jeztzt von diese neuen Klasse abgeleitet und müssten doch die neuen Eigenschaften haben oder nicht ?
es werden jedoch nur die "alten" Eigenschaften im OI aufgelistet..... kann mir da jemand weiter helfen ?

Vielen Dank im voraus !

edit 1:
ich glaube ich weiß jetzt warum das nicht gehen kann( auf jeden Fall nicht so einfach) Intern verwende ich die neue klasse noch gar nicht sondern es sind nur die Objekte davon abgeleitet....
ich dachte das würde schon reichen.... müsste doch auch oder ?
MFG
Michael Springwald

Antworten