Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Inkompatible Typen :-( warum? (https://www.delphipraxis.net/53179-inkompatible-typen-warum.html)

kiar 11. Sep 2005 21:52


Inkompatible Typen :-( warum?
 
Delphi-Quellcode:
type
  TWoche = class
 
  private
    { Private-Deklarationen }
    FDatum : DateTime;
    FWeek : integer;
    function Get_Datum(Value: DateTime): DateTime;
    function GetWeekofYear(FDatum: DateTime):Integer;
  public
    constructor Create;
    property Datum: DateTime read FDatum write Get_Datum;
    property Week : integer read FWeek write GetWeekofYear;
  end;

implementation

constructor TWoche.Create;
begin
  inherited Create;
  FDatum:= DateTime.get_Now ;

end;

function TWoche.GetWeekofYear(FDatum: DateTime):Integer;
begin

end;

function TWoche.get_Datum(Value: DateTime):DateTime;
begin
     If Value <> FDatum then
        Result:= DateTime.Now;
end;
Irgendwie stehe ich auf den Schlauch :wall:


raik

Robert_G 11. Sep 2005 21:57

Re: Inkompatible Typen :-( warum?
 
Mööönsch Raik....

Soll mir extra einen Kaffeee aufsetzen nur um im Satz einen Sinn hinter deiner Fehlerbeschreibung und dem esoterischen Code zu finden? :roll:

kiar 11. Sep 2005 22:00

Re: Inkompatible Typen :-( warum?
 
hallo Robert,

den setze ich dir auf!!!!

wollte einfach was probieren und habe bei beiden property's diese fehlermeldung, und das begreife ich nicht.

raik

SvB 11. Sep 2005 22:03

Re: Inkompatible Typen :-( warum?
 
Hallo, ist wirklich nicht einfach da rauszufinden, was Du willst.
Ich habe mir aber Deinen Code trotzdem mal angesehen und ich denke, dass ich weiss wo dein Problem liegt.

Delphi-Quellcode:
function GetWeekofYear(FDatum: DateTime):Integer;

property Week : integer read FWeek write GetWeekofYear;
Ich denke mal, es liegt daran, dass Deiner Funktion GetWeekofYear ein DateTime übergeben wird und Du ein Integer zurückbekommst und das ganze ist an das Property gebunden. Ein Property kann aber nur von einem Typ sein, entweder DataTime oder Integer. So wird das denke ich nicht funktionieren.
Wie es unter .NET aussieht weiss ich jetzt nicht, aber ich würde sagen, dass es da auch nicht geht.

Grüße
Sven

Speedmaster 11. Sep 2005 22:06

Re: Inkompatible Typen :-( warum?
 
DateTime ist ein Struct ( Hehe @ Robert_G ), auch genannt Record!

Ich weiss zwar nicht genau was du machen willst, aber warum willst du jedesmal die Daten zwischenlagern?

Edit: Vergiss das was ich geschrieben habe, das oben stimmt aber!

marabu 11. Sep 2005 22:15

Re: Inkompatible Typen :-( warum?
 
Hallo raik,

ich habe keine Ahnung von .Net - trotzdem erschütterst du mein Weltbild. Was ist aus der guten alten Sitte geworden Getter als Funktionen ohne Parameter und Setter als Prozedur mit einem Parameter zu deklarieren, der vom Typ der property sein muss?

Grüße vom marabu

kiar 11. Sep 2005 22:27

Re: Inkompatible Typen :-( warum?
 
so jetzt habt ihr mich ganz raus gebracht :mrgreen:

jetzt habe ich was anderes gemacht und zwar so
Delphi-Quellcode:
 private

    Fx     : Integer;
    function GetTest:Integer;

  public
    constructor Create;
    property Week : integer read Fx write GetTest; // hier kommt immer E2008 Inkompatible Typen
  end;

implementation

constructor TWoche.Create;
begin
  inherited Create;
  week:= getTest;
end;

function TWoche.GetTest :Integer;
begin
     result:=0;
end;
egal ob das einen sinn ergibt, es kommt immer noch der selbe fehler.

sorry Marabu, das ich dein Weltbild erschüttert habe :mrgreen:

Sergej 11. Sep 2005 22:34

Re: Inkompatible Typen :-( warum?
 
Öhm du solltest in einer SET -Methode schon auch was mit der private Variable machen oder?


Delphi-Quellcode:
function TWoche.GetTest(anInt : integer) :Integer;
begin
     Fx := anInt;
end

Und vor allem wieso ist deine Get/Set (der name ist verwirrend) - Methode private?

[Edit] Okay, dass kann ich ja noch nachvollziehen... [edit]

Greetz Sergej

CalganX 11. Sep 2005 22:38

Re: Inkompatible Typen :-( warum?
 
Hi,
ich glaube das Problem ist ein ganz anderes. ;)
Du verwendest eine Funktion, die einen Integerwert zurückliefert als Setter/Write-Methode. Das ist irgendwie nicht ganz richtig. Du müsstest deine GetWeek-Methode als Getter definieren...

Chris

marabu 11. Sep 2005 22:52

Re: Inkompatible Typen :-( warum?
 
Hi Chris, das habe ich raik vor einer halben Stunde auch gesagt, aber das will er wohl nicht hören...

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz