Ik wilde mijn datumvelden in een class wat compacter maken, omdat er een behoorlijke hoeveelheid instanties van die class kunnen onstaan (zit data in t.b.v. een treeview). Ik gebruik op dit moment TDateTime. Die is 64 bits en dat is natuurlijk veel meer dan noodzakelijk. Om de een of andere reden is TDate ook 64 bits, dus daar ben ik ook niet mee geholpen.
Dus ik dacht, dan zelf maar een record in elkaar knutselen
En nu komt het... een type als deze:
En nu de hamvraag (kun je een plakje ham komen afhalen als je em beantwoord
): Hoe krijg ik delphi zover dat ie 3 bytes gebruikt voor mijn TCompactDate?
Dus ik dacht, dan zelf maar een record in elkaar knutselen
Delphi:
Prima, hierbij gebruiken Day en Month allebij netjes 1 byte, en Year gebruikt 2 bytes (ik kan er dus net zo goed respectievelijk twee bytes en een word van maken). Ik ben achter die informatie gekomen met de SizeOf functie, maar het gekke is dat SizeOf(TCompactDate) geeft 4 terug, dus 32 bits!1
2
3
4
5
| TCompactDate = packed record Day: 1..31; Month: 1..12; Year: 0..9999; end; |
En nu komt het... een type als deze:
Delphi:
...daarvan zou je verwachten dat ie 3 bytes beslaat, maar dat gaat kennelijk niet, want SizeOf(Test) geeft dan doodleuk 4 terug.1
| Test = 0..200000; |
En nu de hamvraag (kun je een plakje ham komen afhalen als je em beantwoord
[ Voor 6% gewijzigd door _Thanatos_ op 18-03-2004 21:46 ]
日本!🎌