AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

eine "class" verändern, Name beibehalten

Ein Thema von Nogge · begonnen am 23. Mai 2005 · letzter Beitrag vom 25. Mai 2005
Antwort Antwort
Seite 1 von 2  1 2   
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

eine "class" verändern, Name beibehalten

  Alt 23. Mai 2005, 10:12
Hallo Community,
Ich möchte gern die "class" TTreeNode um einen Word-Wert erweitern, dabei aber den Klassen-Namen beibehalten. So, wie es im unten stehenden Code geschrieben steht, funktioniert es aber leider nicht.
Delphi-Quellcode:
type
  TTreeNode{Ex} = class(TTreeNode)
    private
      { Private declarations }
      GroupID: Word;
    end;
Ich habe es zuerst mit dem Namen TTreeNodeEx versucht, allerdings nimmt dann ein TreeView dieses Item nicht mehr an. Ich möchte nun nicht noch die TreeView-Klasse umschreiben, weil es einfacher ist, mit einer VCL-Treeview zu arbeiten. Außerdem gefällt mir die Data-Variante auch nicht so sehr => ein wenig umständlich und weniger übersichtlich.
Weiß da jemand eine Lösung?
  Mit Zitat antworten Zitat
Grendel
(Gast)

n/a Beiträge
 
#2

Re: eine "class" verändern, Name beibehalten

  Alt 23. Mai 2005, 11:16
Ob es eine elegantere Lösung gibt weiß ich nicht, aber wir (Firma) haben letztens noch den kompletten Tree aus der VCL Kopiert und die Anpassungen daran gemacht.
Wir haben jedenfalls keine andere Möglichkeit gefunden die TreeNodes um Eigenschaften zu erweitern.

Bis neulich ...
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#3

Re: eine "class" verändern, Name beibehalten

  Alt 23. Mai 2005, 11:20
Wenn du eine Pro/Ent/Arc-Version benutzt, kannst du ja prinzipiell direkt im Source die entsprechende Stelle bearbeiten. Dann die Unit kopieren und in den Lib-Ordner einfügen. Im Libordner musst du dann nur noch die .dcu-Datei entfernen

Sollte jedenfalls so funktionieren
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:03
1000. Beitrag .... :

Schau dir doch mal das hier an, da wurde soetwas gemacht ...



Und jetzt:
  Mit Zitat antworten Zitat
KrasserChecker

Registriert seit: 21. Jul 2004
120 Beiträge
 
#5

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:16
Das mit der Klasse "TTreeNodeEx" war schon ganz richtig.
Jetzt musst Du lediglich noch in dem Ereignis "OnCreateNodeClass" des Treeviews diese Klasse zurückliefern:
Delphi-Quellcode:
procedure TForm1.TreeView1CreateNodeClass(Sender: TCustomTreeView;
  var NodeClass: TTreeNodeClass);
begin
  NodeClass := TTreeNodeEx;
end;
Wann immer Du jetzt einen Node anspricht einfach per "Typecast" ansprechen:
Delphi-Quellcode:
...
(Node as TTreeNodeEx).GroupID := ...;
...
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#6

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:20
Hi.

TTreeNode hat eine Property "Data" (ein Pointer). Lass ihn einfach auf die GroupID zeigen...
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:31
Zitat von Waldteufel:
Hi.

TTreeNode hat eine Property "Data" (ein Pointer). Lass ihn einfach auf die GroupID zeigen...
Pfui deivel...

Unser KrasserChecker hat hier schon recht.

@Grendel
Krass *kopf schüttel*
Vor allem wenn man bedenkt, dass man sich schon durchlesen sollte was man da ändert.
Zitat:
Wir haben jedenfalls keine andere Möglichkeit gefunden
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#8

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:36
Hi.

Zitat von Robert_G:
Zitat von Waldteufel:
Hi.

TTreeNode hat eine Property "Data" (ein Pointer). Lass ihn einfach auf die GroupID zeigen...
Pfui deivel...

Unser KrasserChecker hat hier schon recht.
Wieso ist das "pfui deivel"?
Lieber Data zu ^Word casten als den Knoten nach TTreeNodeEx...
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#9

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 17:39
Zitat von Waldteufel:
Hi.

Zitat von Robert_G:
Zitat von Waldteufel:
Hi.

TTreeNode hat eine Property "Data" (ein Pointer). Lass ihn einfach auf die GroupID zeigen...
Pfui deivel...

Unser KrasserChecker hat hier schon recht.
Wieso ist das "pfui deivel"?
Lieber Data zu ^Word casten als den Knoten nach TTreeNodeEx...
das mit der klasse is aber mehr im sinne von OOP. Ich würds allerdings auch mit nem Pointer auf die GroupID machen
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.536 Beiträge
 
#10

Re: eine "class" verändern, Name beibehalten

  Alt 24. Mai 2005, 18:14
Moin allerseits,

wenn ich mich nicht irre, dann könnte man ab D2005 auch class helpers dafür verwenden. Obwohl diese laut Borland nur für Delphi .NET funktionieren, laufen sie auch unter Win32. Evtl. könntest du damit was erreichen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf