AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi class oparator implicit funktioniert nicht (Bug??)
Thema durchsuchen
Ansicht
Themen-Optionen

class oparator implicit funktioniert nicht (Bug??)

Ein Thema von stoxx · begonnen am 15. Jun 2006 · letzter Beitrag vom 21. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#1

class oparator implicit funktioniert nicht (Bug??)

  Alt 15. Jun 2006, 15:59
ich versteh das nicht, den String kann ich wunderbar zuweisen, aber nicht die Variable vom Typ TDateTime
Wieso ??? ist das ein Compilerbug oder mach ich was falsch ?

Delphi-Quellcode:
type

TIBZeit = record
private
  Value : TDateTime;
public
  class operator implicit(Zeit : TDateTime) : TIBZEit;
  class operator implicit(a : TIBZeit) : TDateTime;
  class operator implicit(a : TIBZEit) : String;

end;

implementation

{$R *.dfm}

class operator TIBZeit.implicit(Zeit : TDateTime) : TIBZeit;
begin
 result.value := Zeit;
end;

class operator TIBZeit.implicit(a : TIBZeit) : TDateTime;
begin
 result := a.Value;
end;

class operator TIBZeit.Implicit(a : TIBZeit) : String;
begin
  result := DateTimeToStr(a.value);
end;

//==============================================================================

procedure TForm1.Button1Click(Sender: TObject);
var d : TDateTime;
    Zeit : TIBZEit;
    st : String;
begin

  Zeit := now;
  st := Zeit;
  d := Zeit; /// geht nicht

end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#2

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 13:01
hmm .. weiß das denn wirklich niemand ? ist doch ein ziemlich wichtiges Grundproblem ?
Habe ich irgendeinen Compilerschalter übersehen ?
Versteh das nicht !
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 13:13
Delphi-Quellcode:
TIBZeit = record
private
  Value : TDateTime;
public
  class operator implicit(Zeit : TDateTime) : TIBZEit;
  class operator implicit(a : TIBZeit) : TDateTime;
  class operator implicit(a : TIBZEit) : String;

end;
Nun, ich kann jetz mal wieder total daneben liegen, aber
so wie ich das vor langer Zeit mal gelernt habe
können records nur statische Feldtypen arbeiten.
So in der Art:
Delphi-Quellcode:
TIBTeit = record
  value : TDateTime;
end;
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#4

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:05
Zitat:
Nun, ich kann jetz mal wieder total daneben liegen, aber
so wie ich das vor langer Zeit mal gelernt habe
können records nur statische Feldtypen arbeiten.
Da bist Du leider nicht mehr UpToDate .. Delphi2006 kann das ! das ist ja das coole !
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:08
Tja, cool oder verwirrend.
Da bleibe ich doch noch ein Weilchen bei Delphi6 ;o)

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

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

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:08
Zitat von Klaus01:
Nun, ich kann jetz mal wieder total daneben liegen, aber
Tust du.

Zitat von Klaus01:
so wie ich das vor langer Zeit mal gelernt habe
können records nur statische Feldtypen arbeiten.
So in der Art:
Delphi-Quellcode:
TIBTeit = record
  value : TDateTime;
end;
Grüße
Klaus
Seit D2006 (?) können Records prinzipiell auch Methoden etc. haben. Allerdings hagelt's bei mir immer interne Compilerfehler, sobald ich irgendwas Nichttriviales mache (z.B. http://qc.borland.com/wc/qcmain.aspx?d=26014).

Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:11
Ein wenig OT:

Da habe ich dann mal eine Frage wo ist
denn dann der prinzipielle Unterschied
zwischen records und Objects?

Ist das ganze dann eher mir einer Class in Java
zu vergleichen?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:15
New-style records können nur statische Methoden haben, während objects weiterhin auch late-bound-Methoden haben können *glaub*

edit: Genauer: objects unterstützen Vererbung, records nicht
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#9

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:17
ähm... dass records funktionen haben können, wär mir neu, aber das sind doch hier operatoren! und das wurde ja extra eingeführt, dass man in recordtypen (afaik aber nicht in klassen sprich objekttypen) die operatoren benutzen kann.

warum das beispiel nicht funktioniert, kann ich aber ncihtr sagen.

Im übrigen ist "funktioniert nicht" keine befriedigende fehlermeldung

Nervt der COmpiler? kommen falsche ergbnisse raus? oder was?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: class oparator implicit funktioniert nicht (Bug??)

  Alt 16. Jun 2006, 14:53
Zitat von Dax:
New-style records können nur statische Methoden haben, während objects weiterhin auch late-bound-Methoden haben können *glaub*
edit: Genauer: objects unterstützen Vererbung, records nicht
Lol, virtuelle Methoden wären ohne die Möglichkeit zur Vererbung auch irgendwie witzlos, oder?
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 15:08 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