AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi bei Ableitung Typ eines vorhandenen Felds ändern
Thema durchsuchen
Ansicht
Themen-Optionen

bei Ableitung Typ eines vorhandenen Felds ändern

Ein Thema von unerwartet · begonnen am 9. Sep 2004 · letzter Beitrag vom 10. Sep 2004
Antwort Antwort
unerwartet

Registriert seit: 7. Sep 2004
12 Beiträge
 
Delphi 7 Professional
 
#1

bei Ableitung Typ eines vorhandenen Felds ändern

  Alt 9. Sep 2004, 15:43
Ich habe folgendes Problem.
Ich habe eine Klasse TTLTree, die von TTreeView abgeleitet ist.
Ich habe eine Klasse TTLNodes, die von TTreeNodes abgeleitet ist.

Wie erreiche ich es nun, dass meine Klasse TTLTree unter der Eigenschaft 'Items' statt der herkömmlichen TTreeNodes meine Klasse TTLNodes benutzt? (Tatsächlich ist die Sache noch komplizierter, TTLNodes nur deswegen von mir abgeleitet wurde, damit ich auch TTLNode dort benutzen kann, denn dort habe ich die eigentliche Anpassung gemacht).

Ich habe das auf folgendem Weg probiert:

Delphi-Quellcode:
 TTLTreeNode= class(TTreeNode)
   private
    fObjekt: TObject;
   public
    property Objekt:TObject read fObjekt write fObjekt;
   end;
 
  TTLTreeNodes= class(TTreeNodes)
   public
    Item: array of TTLTreeNode;
   end;

  TTLTree = class(TTreeView)
   private
     fRootNode: TTreeNode;
   public
     Items: TTLTreeNodes;
     property rootNode: TTreeNode read fRootNode;
   end;
Hierbei bekomme ich aber EAccessViolations, die ich nicht zuordnen kann. Aber bei der Definition von TTLTreeView.Items und TTLTreeNodes.Item habe ich schon gemerkt, dass ich da keine Ahnung was ich dort eintragen soll.
In der OH steht die Definition folgendermaßen:

für TTreeView.Items:
property Items: TTreeNodes; Hier fällt mir schon auf, dass das so gar nicht funktioniert, denn Delphi erwartet an dieser Stelle mindestens eine READ oder WRITE Anweisung.

für TTreeNodes.Item:
property Item[Index: Integer]: TTreeNode; default; Hier hab ich noch mehr Verständnisprobleme. Ist das jetzt ein array oder was sagt diese Definition aus? Was bedeutet das Wort 'default' an dieser Stelle. Und auch hier das selbe Problem, dass Delphi den Mangel an READ und WRITE bemängelt.

Ich weiß nun nicht, wie ich vorgehen soll, um mein Ziel zu erreichen. Falls das ganze jetzt etwas zu konfus war, noch mal in anderen Worten.

Ich habe die Klasse TTLTreeNode von TTreeNode abgeleitet und dort eine Änderung eingebracht. Diese Klasse möchte ich nun in einem TreeView verwenden, den ich dafür (und für andere Anpassungen) auch abgeleitet habe. Wie erreiche ich das?

Gruß
Marco
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: bei Ableitung Typ eines vorhandenen Felds ändern

  Alt 10. Sep 2004, 10:14
alles ohne Gewähr : 8)

1. statt als public,als published deklarieren

2. die Feld-Properties, also die mit dem Anfangs "f" müssen irgendwo auch besetzt werden. Davon sehe ich bei dir aber nichts. Hier ein Bsp.:

Delphi-Quellcode:
TMyLabel = class(TCustomLabel)
  private
    FPosition: Boolean;
...
    published
      property Position: TLabelPosition read FPosition write SetPosition;
end;

procedure TMyLabel.SetPosition(const Value: TLabelPosition);
begin
  FPosition := Value;
...
end;
Gruß
Hansa
  Mit Zitat antworten Zitat
unerwartet

Registriert seit: 7. Sep 2004
12 Beiträge
 
Delphi 7 Professional
 
#3

Re: bei Ableitung Typ eines vorhandenen Felds ändern

  Alt 10. Sep 2004, 11:55
Also ich muss zugeben, verstanden habe ich es immer noch nicht. Allerdings muss ich das zum Glück auch nicht mehr (obwohl es schön wäre die Lösung hierfür zu finden), denn ich habe festgestellt, dass TTreeNode bereits die Möglichekeit bietet ein Objekt dahinter zu hängen. Und mehr brauch ich im Moment eigentlich nicht (und hoffe dass es auch nicht mehr wird, damit ich nicht wieder vor dem selben Problem stehe...)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.
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