AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Verhindern von Instanzierung eines Objekts mit Create
Thema durchsuchen
Ansicht
Themen-Optionen

Verhindern von Instanzierung eines Objekts mit Create

Ein Thema von warheart · begonnen am 24. Apr 2008 · letzter Beitrag vom 30. Mai 2008
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.608 Beiträge
 
#21

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:12
Zitat von s-off:
Das sagt wohl ganz klar aus, dass die Features mit Delphi 8, 2005, 2006 oder 2007 eingeführt worden sind, und nicht erst mit 2007.
Nein. In der Überschrift steht
Zitat:
Delphi 2007 for Win32 What's New
New and Enhanced IDE Features since Delphi 7
.
Dort sind - wie die Überschrift Aussagt - alle Features gelistet, die in 2007 neu sind. Und zwar kumuliert seit Delphi 7 (weil das die am meisten eingesetzte Delphi-Version ist.

Dass dort dann logischerweise auch wieder alte Features von Delphi 8, 2005 und 2006 drin stehen ist logisch, aber diese Liste ist so wie sie da steht nur Verbindlich für 2007.

So, und nun genug des Offtopic. Zum Rest folgt im Laufe des Tages ne PN.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#22

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:21
Zitat von Phoenix:
Zitat von s-off:
Das sagt wohl ganz klar aus, dass die Features mit Delphi 8, 2005, 2006 oder 2007 eingeführt worden sind, und nicht erst mit 2007.
Nein. In der Überschrift steht
Zitat:
Delphi 2007 for Win32 What's New
New and Enhanced IDE Features since Delphi 7
.
Dort sind - wie die Überschrift Aussagt - alle Features gelistet, die in 2007 neu sind. Und zwar kumuliert seit Delphi 7 (weil das die am meisten eingesetzte Delphi-Version ist.

Dass dort dann logischerweise auch wieder alte Features von Delphi 8, 2005 und 2006 drin stehen ist logisch, aber diese Liste ist so wie sie da steht nur Verbindlich für 2007.

So, und nun genug des Offtopic. Zum Rest folgt im Laufe des Tages ne PN.
[OT]
Entschuldige bitte, aber willst Du mich für blöd verkaufen?
Du widersprichst Dir selber auf ganzer Linie:
Zitat von Phoenix:
Dort sind - wie die Überschrift Aussagt - alle Features gelistet, die in 2007 neu sind.
Zitat von Phoenix:
Dass dort dann logischerweise auch wieder alte Features von Delphi 8, 2005 und 2006 drin stehen ist logisch, aber diese Liste ist so wie sie da steht nur Verbindlich für 2007.
Natürlich ist die Liste ausschließlich für D2007 verbindlich. Ich habe auch nichts anderes behauptet.
Das ändert aber nichts an der Tatsache, dass eines dieser Features bereits in Delphi 8, 2005 und 2006 eingeführt worden sein kann, was bei 'abstract' wohl zutrifft, da es in D2006 verfügbar ist - und der OP hat D2006.

Also war Deine Aussage
Zitat von Phoenix:
Das ist neu in Delphi 2007.
schlicht und einfach falsch!

Und spart Euch jeglichen Kommentar bzgl. dieses kleinen Ausrasters hier - aber wenn jemand meint, er müsse mich für doof verkaufen, nur wegen seiner scheinbaren Autorität als Moderator dieses Forums, dann platzt mir echt der Kragen.

Von mir aus könnt Ihr mich nun verwarenen, rausschmeißen, oder sonst was.
Aber so eine Nummer ziehst Du mit mir bitte nicht nochmal ab!

Und mir dann mit Hinweis auf OT noch verbieten wollen, mich dazu zu äußern...

Edit:
Und wenn Du jetzt meinst, diesen meinen Beitrag hier löschen zu müssen, dann stellst Du Dir selber ein Armutszeugnis aus.
[/OT]
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.608 Beiträge
 
#23

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:28
Dann Probiere doch mal aus ob Dein 2006er Compiler verhindert, dass Du eine Instanz einer abstrakten Klasse erzeugen kannst. Wenn er das wie der 2007er auch verhindern würde, dann hättest Du recht, und dieses feature gäbe es schon in 2006.

Dieses Feature gibt es aber - wie Du schnell herausfinden wirst - erst in Delphi 2007.

Und jetzt erkläre mir bitte mal, wo ich Dich für Dumm verkaufe oder wo das schlicht und einfach falsch wäre.
Ich glaub, ich bin echt im falschen Film.

Edit: Und ich bin der Meinung, da wäre jetzt eine öffentliche Entschuldigung mehr als angebracht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#24

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:39
Zitat von Phoenix:
Dann Probiere doch mal aus ob Dein 2006er Compiler verhindert, dass Du eine Instanz einer abstrakten Klasse erzeugen kannst. Wenn er das wie der 2007er auch verhindern würde, dann hättest Du recht, und dieses feature gäbe es schon in 2006.
Nein, das verhindert er nicht. Das sagte ich aber bereits oben schoneinmal.
Zitat von Phoenix:
Nur 'abstract' muckt ein bissel rum.
Ich sagte aber auch,
Zitat:
Und in der Tat kann ich in Delphi 2006 eine als 'sealed' gekennzeichnete Klasse erstellen, die sich auch wirklich nicht ableiten lässt.
Und 'sealed' steht direkt unter 'abstract', so dass es laut Deiner Theorie wohl auch erst in 2007 zur Verfügung stehen dürfte.
Da nicht zu jedem Feature die Version angegeben ist, kann jeder von uns nur Vermutungen anstellen; es sei denn, man testet es.

Zitat von Phoenix:
Und jetzt erkläre mir bitte mal, wo ich Dich für Dumm verkaufe oder wo das schlicht und einfach falsch wäre.
Ich glaub, ich bin echt im falschen Film.
Ich sagte, dass die Überschrift "New and Enhanced IDE Features since Delphi 7" nicht zwingend festlegt, dass alle in der Liste angegebenen Features erst mit Delphi 2007 eingeführt sind, sondern dass die Möglichkeit besteht, dass sie bereits mit Delphi 8, 2005 oder 2006 eingeführt sein können.

Und diese Aussage stellst Du als unwahr dar. Da es daran aber schlicht und einfach nichts dran zu rütteln gibt, was duch das 'sealed'-Beispiel auch belegt ist, komme ich mir von Dir verarscht vor - ganz einfach.

Zitat von Phoenix:
Edit: Und ich bin der Meinung, da wäre jetzt eine öffentliche Entschuldigung mehr als angebracht.
Ja, aber nicht meinerseits - darfst es aber auch per PN machen. Ich leide nicht unter Profilneurose und benötige somit keine öffentliche Genugtuung.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#25

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:42
Zitat von Phoenix:
Dann Probiere doch mal aus ob Dein 2006er Compiler verhindert, dass Du eine Instanz einer abstrakten Klasse erzeugen kannst. Wenn er das wie der 2007er auch verhindern würde, dann hättest Du recht, und dieses feature gäbe es schon in 2006.
Eben schnell getestet auf BDS2007 und RAD2007: Das Abstract Schlüsselwort akzeptiert der Compiler auch schon bei BDS2006, aber es hat dort noch keine Auswirkungen. Die Instanziierung der Klasse und deren Ableitungen wird nicht verhindert, nichtmal eine Warnung/Hinweis wird ausgegeben. In Delphi 2007 ist dies aber denn richtig umgesetzt.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.608 Beiträge
 
#26

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:49
Zitat von s-off:
Ich sagte, dass die Überschrift "New and Enhanced IDE Features since Delphi 7" nicht zwingend festlegt, dass alle in der Liste angegebenen Features erst mit Delphi 2007 eingeführt sind, sondern dass die Möglichkeit besteht, dass sie bereits mit Delphi 8, 2005 oder 2006 eingeführt sein können.

Und diese Aussage stellst Du als unwahr dar. Da es daran aber schlicht und einfach nichts dran zu rütteln gibt, was duch das 'sealed'-Beispiel auch belegt ist, komme ich mir von Dir verarscht vor - ganz einfach.
Zitiere bitte wo ich sage, dass keines dieser Featurs vor 2007 eingeführt wurde?
Soweit ich mich erinnere, habe ich gesagt, dass das eine kumulierte Liste seit Delphi 7 ist.
Und ich habe zudem gesagt, dass man abstrakte Klasse erst ab Delphi 2007 nicht mehr instanzieren kann.

Weder die eine, noch die andere Aussage ist falsch. Die erste deckt sich zudem noch mit Deiner.
Nochmal: Wieso kommst Du Dir dabei verarscht vor?

Du behauptest doch, ich hätte das Gegenteil von dem gesagt, wass da oben bei mir schwarz auf weiss stehst?

Ach.. mir wird das jetzt zu bunt. Soll sich jemand anderes aus dem Team oder Daniel darum kümmern.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von peschai
peschai

Registriert seit: 15. Feb 2004
Ort: Göppingen
270 Beiträge
 
Delphi XE5 Professional
 
#27

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 13:58
Hallo,

@s-off und phoenix: Vertragt euch wieder und trinkt zusammen ein Bier

Wie ist den nun der Vorschlag von Himitsu mit dem "Record" anstelle "class" ?
Peter Schaible
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#28

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 29. Mai 2008, 14:09
Hi,

Zitat von peschai:
Wie ist den nun der Vorschlag von Himitsu mit dem "Record" anstelle "class" ?
Würde gehen, aber: Nur, so lange man nicht ableiten will. Ich wüsste nicht, dass man Records vererben kann.

Für diesen Thread hier (Klasse nur mit statischen Methoden) ist es also ok. Will man dagegen verhindern, dass eine Instanz einer abstrakten Basisklasse erstellt wird, so ist dies keine Lösung.


Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von nicodex
nicodex

Registriert seit: 2. Jan 2008
Ort: Darmstadt
286 Beiträge
 
Delphi 2007 Professional
 
#29

Re: Verhindern von Instanzierung eines Objekts mit Create

  Alt 30. Mai 2008, 09:03
Zitat von FAlter:
Würde gehen, aber: Nur, so lange man nicht ableiten will. Ich wüsste nicht, dass man Records vererben kann.

Für diesen Thread hier (Klasse nur mit statischen Methoden) ist es also ok. Will man dagegen verhindern, dass eine Instanz einer abstrakten Basisklasse erstellt wird, so ist dies keine Lösung.
Nun, da die zur Verfügung stehenden Sprachmittel für Klassen den Standardkonstruktor nicht verbergen können, wäre es vielleicht angebracht über ein anderes Design nachzudenken. Da alle Methoden statisch sind, kann ich nicht ganz nachvollziehen, warum es unbedingt eine Klasse sein muss - eine 'flache' Schnittstelle mittels Funktionen/Prozeduren hätte es auch getan. Wenn es denn unbedingt eine Klasse sein muss, dann erfüllt die angestrebte Logik das Muster eines Singletons - man könnte also ein Interface veröffentlichen und eine Funktion schreiben, die ein/das globales Objekt zurückgibt.

Für beide Lösungsansätze kann man jede Delphi-Version für Win32 verwenden, und muss sich nicht auf Delphi-Compiler beschränken, die 'class static' unterstützen.

Kurz: Ich halte die Fragestellung in diesem konkreten Fall für hinfällig, weil das Design an Compiler-Featuritis leidet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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:20 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