Hallo, bin gerade am testen mit den class operatoren:
Funktioniert soweit gut, aber für was braucht man eine explicite Typumwandlung und was macht man damit ?
Vielen Dank !
Delphi-Quellcode:
IBZeit : TIBZeit;
crlf : STring;
begin
crlf := #13#10;
IBZeit:= now;
st := IBZeit + crlf;
st := st + DateTimeToStr(IBZeit) + crlf;
showmessage(st);
Delphi-Quellcode:
//==============================================================================
type
TIBZeit = record
strict private
Value : TDateTime; // am genauesten // unix Zeit ist ja nur bis auf eine Sekunde auflösend (Sekunden seit 1970)
public
class operator implicit(UnixTime : Int64) : TIBZeit;
class operator implicit(Zeit : TDateTime) : TIBZEit;
class operator implicit(Self : TIBZeit) : String;
class operator implicit(Self : TIBZeit) : TDateTime;
class operator explicit(Self : TIBZeit) : String; // unklar
end;
implementation
//==============================================================================
class operator TIBZeit.implicit(UnixTime : Int64) : TIBZEIT;
begin
result.Value := UnixToDateTime(UnixTime);
end; // implicit
//==============================================================================
class operator TIBZeit.implicit(Zeit : TDateTime) : TIBZeit;
begin
result.value := Zeit;
end; // implicit
//==============================================================================
class operator TIBZEit.implicit(Self : TIBZeit) : String;
var formatString : STring;
begin
formatString := 'yyyymmdd hh:nn:ss';
result := FormatDateTime(formatString, self.value) + ' CET';
end;
//==============================================================================
class operator TIBZEit.implicit(Self : TIBZeit) : TDateTime;
begin
result := self.Value;
end;
//==============================================================================
class operator TIBZeit.explicit(self : TIBZeit): STring;
var formatString : STring;
begin
// für was nehm ich das ?
end;
//==============================================================================
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.