Bij sommige events krijg je een TShiftState mee als argument.
De TShiftState is in de classes.hpp gedefinieerd als volgt:
Nu is het probleem dat bij een event oid, je de ShiftState niet kan benaderen als een fatsoenlijk type...
Alle andere Types kan je in principe gewoon overnemen en uitlezen, maar bij ShiftStates dus niet.
Nu zit het probleem in de Set<Type, MinVal, MaxVal> <NewType>
Het is iets van een Delphi Object Pascal gebeuren.
Als ik het uit de Classes.hpp verwijder en vervang met
dan werkt de Shift wel, en kan ik hem benaderen als een int.
Echter ben ik hier erg huiverig voor, want ik rotzooi niet graag in de headers.
Heeft iemand hier een nuttige opmerking over?
Ik heb gezien dat je in Object Pascal de ShiftState wel gewoon met een if kan benaderen.
De TShiftState is in de classes.hpp gedefinieerd als volgt:
C++:
1
2
3
4
5
| #pragma option push -b- enum Classes__1 { ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble }; #pragma option pop typedef Set<Classes__1, ssShift, ssDouble> TShiftState; |
Nu is het probleem dat bij een event oid, je de ShiftState niet kan benaderen als een fatsoenlijk type...
C++:
1
2
3
4
5
6
7
| void __fastcall TfrmMyICQClient::ListView1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if (Shift== iets) DoSomething(); } |
Alle andere Types kan je in principe gewoon overnemen en uitlezen, maar bij ShiftStates dus niet.
Nu zit het probleem in de Set<Type, MinVal, MaxVal> <NewType>
Het is iets van een Delphi Object Pascal gebeuren.
Als ik het uit de Classes.hpp verwijder en vervang met
C++:
1
| typedef Classes__1 TShiftState; |
dan werkt de Shift wel, en kan ik hem benaderen als een int.
Echter ben ik hier erg huiverig voor, want ik rotzooi niet graag in de headers.
Heeft iemand hier een nuttige opmerking over?
Ik heb gezien dat je in Object Pascal de ShiftState wel gewoon met een if kan benaderen.
We live in a primitive time don't we, neither savage nor wise. Half measures are the curse of it; any rational society would either kill me or put me to some use.