Hmm, that's strange! Try the following code. You should see a combobox for the 'Something' property:

[pascal]unit anothercomponent;

interface

uses
Classes;

type
TMyType = (mtA, mtB, mtC);

TAnotherComponent = class(TComponent)
private
FSomething: TMyType;
published
property Something: TMyType read FSomething write FSomething;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TAnotherComponent]);
end;

end.[/pascal]

You'll have to confirm what part of the unit is being compiled first! I noticed that there's a {$ELSE} sitting there in the code snippet you gave. These mean to conditionally compile - which means one of the branches won't compile at all! If you're unlucky, your type will be

[pascal]type
_D3DFORMAT = {$IFDEF TYPE_IDENTITY}type {$ENDIF}DWord;[/pascal]

That won't have a combobox because it's simply a number! (DWord = 32 bit unsigned integer, aka LongWord or Cardinal [in its current size]). How would Delphi possibly know what values to drop down if that's the case? (Note that the extra 'type' part there simply gives the new type a unique identity, so that you can't directly assign a DWord to a _D3DFormat type without a cast.

If that bit *is* the one being compiled, you'll have to write your own property editor I guess. You could create a form or dialogue with the known possible values (maybe a combobox) and an OK button. For more info, here are three articles by Peter Morris

http://www.howtodothings.com/showart...sp?article=310
http://www.howtodothings.com/showart...sp?article=320
http://www.howtodothings.com/showart...sp?article=327