To give a better picture of my problem: Type tQSDL_Surface = Class (SomeClass) Protected fFlags : UInt32; {LongWord}
Function GetFlag(aBit: UInt32): Boolean; Function SetFlag(aBig: UInt32; aBool: Boolean); Public Constructor Create(); Destructor Destroy(); Property HWSurface : Boolean Index SDL_HWSurface Read GetFlag Write SetFlag; Property SRCAlpha : Boolean Index SDL_SrcAlpha Read GetFlag Write SetFlag; end; SDL_HWSurface and SDL_SRCAlpha are constants defined in the SDL_Video unit. They are meant for Boolean operations. More specificly they are meant to be ORed togeather to create a flag list and ANDed with fFlags to check for there state. I'm trying to do two things with these properties: 1# Not force a programmer to include the SDL Unit to get these constants. 2# Improve the readability of my code by using these properties to control flags. For instance a child object, SDL_VideoSurface, would have extra flags such as FullScreen. Calling the following: MyVideoSurface.FullScreen := TRUE; would cause the fullscreen bit to be set to true and when the screen is allocated it will fill the entire screen. The Problem is that if I define a constant index {$Mode ObjFPC} requires that index to be an Signed Integer value which it cannot be because that would change its binary value and the bitwise operations would be based on the wrong values. My solution is to simply create methods for each flag individualy that calls GetFlag/SetFlag with the correct paramaters. I was just wondering if there was a way to get around this. If not, thanks anyways. I just learned something new about indexes and and making sure I understand there limitation correctly. _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal