Autor Beitrag
Hirschi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win XP, Vista, 7
Delphi 2009 Ent., C# (VS 2010 Ent.), C++ (VS 2010 Ent.), Java (Eclipse)
BeitragVerfasst: Mi 29.04.09 09:36 
Hallo,
ich seh den Fehler leider nicht. Hab hier und auch auf anderen Seiten die Vorgehensweise zum Umgang mit TObjectList angeschaut und meiner Meinung mach ich genau das Gleiche, aber ich bekomme immer die Fehlermeldung "Inkompatible Typen"

Zu Beginn der Anwendung mache ich:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
fListe   : TObjectList;
tempDate : TDateTime;

fListe  := TObjectList.Create(true);
tempDate := StrToDateTime(...);


Und später versuche ich einen Datumswert der Liste hinzuzufügen mit:
ausblenden Delphi-Quelltext
1:
fListe.Add(tempDate);					


Leider bekomme ich dann die Fehlermeldung: "Inkompatible Typen: 'TObject' und 'TDateTime'"

Wie bekomme ich nun das Element in die Objektliste? Eigentlich ist es doch egal, was für Typen ich in die Liste geben will...

MfG
Hirschi
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Mi 29.04.09 09:52 
Hi, naja der Fehler spricht ja für sich.
Ist eben kein Tobject...

Ich verweise immer wieder gerne auf die F1 taste folgendes steht in der Hilfe:

type TDateTime = type Double;

Also kurz gesagt es kann garnicht funktionieren.
Also vergiss das schnell wieder :P Du Trinkst zuhause ja auch keine Milch mit Cola.

Mal damit du es dir Bildlich vorstellen kannst:
Gibt ja diese tollen Kinderspielezuge wo man klötze in verschiedenen Formen (Rechteck, dreieck, usw..) hat.
So dann hat man noch einen behälter der geschlossen ist. Und der aussparungen in eben dieser Form, diesen Formen hat.
Und in eine dreieckige aussparung passt nun mal kein Quadrat. Und in Delphi ist es das selbe :D :-)

Edit:

So du hast jetzt nicht genauer beschrieben was genau du damit machen willst. Wenn es um die Speicherung von Tdatetime in einer Liste geht. Dann nimme eine Tstringlist.
Mit timetostr, strtotime kannste das Umwandeln.

Oder folgendes:
ausblenden Delphi-Quelltext
1:
 Tdatetimearray: Array[1..100000of Tdatetime;					
Hirschi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win XP, Vista, 7
Delphi 2009 Ent., C# (VS 2010 Ent.), C++ (VS 2010 Ent.), Java (Eclipse)
BeitragVerfasst: Mi 29.04.09 10:27 
Ich dachte, alles ist im Grunde ein TObject...wie auch immer. Das bedeutet, wenn du Recht hast, dass eine Objektliste keine primitiven Datentypen verwalten kann. Klasse. Was ginge, ist, wenn ich einen eigenen Datentyp mache, der nur ein TDateTime-Element hat. Dachte, es gäbe aber einen geraderen Weg.

MfG
Hirschi

Edit: Dein nachgetragener Vorschlag ist ja nicht dynamisch und deshalb leider nicht akzeptabel.
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Mi 29.04.09 11:21 
also Hirschi... dann mach nen dynamischen Array draus ^^ stell dich nicht so an :P

EDIT:

wenn ich das so richtig verstanden habe :P :nixweiss:


Zuletzt bearbeitet von thepaine91 am Mi 29.04.09 13:29, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.04.09 13:25 
user profile iconHirschi hat folgendes geschrieben Zum zitierten Posting springen:
Was ginge, ist, wenn ich einen eigenen Datentyp mache, der nur ein TDateTime-Element hat.
Ein Record reicht ja bereits, den erzeugst du jeweils mit New und legst den Zeiger darauf in eine TList (nicht TObjectList).
Am Ende müssen die natürlich mit Dispose wieder freigegeben werden.