AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen mit virtuellem Constructor

Ein Thema von himitsu · begonnen am 7. Dez 2009 · letzter Beitrag vom 8. Dez 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#1

Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 13:45
Moin,

TComponent besitzt ja einen virtuellen Constructor ...

gibt es da noch andere delphieigene "Basistypen", welche über sowas verfügen?


Es geht um die Definition für eine Deserialisierung meines himXML,
also speziell darum, welche Classen man dafür registrieren kann.

Das Problem ist ja, daß dieses nur mit Klassen geht, welche über sowas verfügen, da man ja nur die Klassen registrieren kann/müßte und ohne einen solchen Constructor lassen sich "normale" Klassen nicht automatisch erstellen (.Create).
Delphi-Quellcode:
var registriert: array of TComponent;

objekt := registriert[i].Create;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 14:05
Gib einfach mal in Delphi 7 in der Delphi-Hilfe unter dem Tabsheet Suchen "constructor virtual" ein.
Dort werden mir dann zumindest alle damit aufgelistet

Abtippen wäre mir grad zuviel Aufwand

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#3

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 14:39
Joar, die über 500 Suchergebnisse kenn ich, allerdings sucht der hier bei "constructor virtual" nach "constructor OR virtual" und das bringt mir recht wenig.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 16:29
500 Suchergebnisse?
Also bei mir waren das nur ein paar...

Hab ich auf irgendwas draufgeklickt

Also eigentlich sollte das darüber gehen, ging bei mir zumindest...nur leider hab ich hier zuhause kein Delphi 7 drauf.

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 17:12
Nja, es sind mehr, aber bei 500 wird aufgehört mit auflisten.
Wie gesagt, es wird leider ODER verknüpft und demnach werden alle Beiträge gefunden, wo eines der beiden Wörter drinsteht ... als quasi jede Komponente, welche es gibt.

Im Grunde haben auch alle VCL-Komponenten einen viruellen Konstructor, da sie natürlich von TComponent abstammen.
Und ich würde gern wissen, ob noch antere "fundamentale" Klassen soeinen haben, so wie eben TComponent.

[add]
Hab mich schon etwas durch die Deklarationen gekämpft und bis jetzt diese gefunden:
Zitat:
Classes.TBasicActionLink
Classes.TComponent (im Grunde alle VCL-Komponenten)
Classes.TCollectionItem
ComCtrls.TListItem
ComCtrls.TConversion
ComCtrls.TTreeNode
DockTabSet.TTabDockPanel
ExtCtrls.TEditButton
Graphics.TGraphic
OleAuto.TAutoClass
die Fetten werde wohl für eine Deserialisierung und ihre automatische Erzeugung vorsehn
und die grauen dürften für sowas eh nicht in Frage kommen
Miniaturansicht angehängter Grafiken
unbenannt_236.png  
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 21:57
Also ich schau morgen einfach nochmal nach was ich alles da hatte, wundert mich irgendwie
das es soviele Einträge sind... werde sie dann halt mal abtippen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 23:13
Zitat von himitsu:
Joar, die über 500 Suchergebnisse kenn ich, allerdings sucht der hier bei "constructor virtual" nach "constructor OR virtual" und das bringt mir recht wenig.
Wie wäre es mit "Suchen in Dateien" (oder GExperts-Grep) mit regulären Ausdrücken nach "constructor.*virtual" in den VCL-Sourcen?
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

Re: Klassen mit virtuellem Constructor

  Alt 7. Dez 2009, 23:23
bei der alten OH konnte man noch selber bestimmen, wie gesucht werden so
- Wörter UND oder ODER verknüpft
- Themen ohne Überschrift beachten
- usw.
das geht jetzt nicht mehr

vorallem daß die Suche mehrere Wörter einfach per ODER verknüpft

@uligerhardt
hatte ich versucht, aber irgendwie mochte er meinen regulären Ausdruck nicht und fand einfach nichts
drumm hatte ich dann nach "virtual" als ganzes Wort gesucht und mich durch viele Units geklickt

ich baue aber grade meine Seralisierung nochmals um und gestalte es so, daß man dann auch noch solche Basisklassen nachrüsten kann
(ich hoffe, daß es dann auch so läuft, wie es geplant ist)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Klassen mit virtuellem Constructor

  Alt 8. Dez 2009, 00:34
Zitat von uligerhardt:
Wie wäre es mit "Suchen in Dateien" (oder GExperts-Grep) mit regulären Ausdrücken nach "constructor.*virtual" in den VCL-Sourcen?
Hab's mal mit Grep probiert, ohne Einschränkung auf ganzes Wort. Ergebnis:
Code:
$(BDS)\Source\Win32\VCL\CaptionedDockTree.pas
     57   $(BDS) Create(DockCaptionOrientation: TDockCaptionOrientation); virtual;

$(BDS)\Source\Win32\VCL\Controls.pas
    439   $(BDS) Create(AControl: TControl); virtual;
    673   $(BDS) Create(Control: TControl); virtual;
    697   $(BDS) Create(Control: TControl); virtual;
   1842   $(BDS) Create(DockSite: TWinControl); virtual;

$(BDS)\Source\Win32\VCL\Forms.pas
    637   $(BDS) CreateNew(AOwner: TComponent; Dummy: Integer = 0); virtual;

$(BDS)\Source\Win32\VCL\Graphics.pas
    704   $(BDS) Create; virtual;

$(BDS)\Source\Win32\VCL\OleAuto.pas
    100   $(BDS) Create; virtual;

$(BDS)\Source\Win32\VCL\ShadowWnd.pas
     51   $(BDS) CreateShadow(AOwner: TComponent; ControlSide: TControlSide); virtual;

$(BDS)\Source\Win32\VCL\Themes.pas
    389   $(BDS) Create; virtual;
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

Re: Klassen mit virtuellem Constructor

  Alt 8. Dez 2009, 07:31
Zitat von himitsu:
Das Problem ist ja, daß dieses nur mit Klassen geht, welche über sowas verfügen, da man ja nur die Klassen registrieren kann/müßte und ohne einen solchen Constructor lassen sich "normale" Klassen nicht automatisch erstellen (.Create).
Delphi-Quellcode:
var registriert: array of TComponent;

objekt := registriert[i].Create;
Das ist so aber nicht ganz korrekt, wenn überhaupt, musst du dir Referenzen auf TComponentClass speichern, und darauf ein Create aufrufen. Und das geht auch, wenn der Konstruktor der Basis-Klasse nicht virtual wäre. Das Problem wird dann nur sein, dass ein spezieller Konstruktor beim Erstellen eines Objekts nicht aufgerufen wird. Das kann aber auch passieren, wenn irgendein Spaßvogel von TComponent ableitet und mal fix ein reintroduce statt einem override hinter seinen Konstuktor schreibt. Ok, isser selber schuld dann, aber ich wollte nur die Möglichkeit aufzeigen.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:00 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