You do want to start here
https://wiki.freepascal.org/SynEditOtherwise the image is not much related on how to access SynEdit.
But as for ideas for the "class designer" (I guess you want to talk about that?):
The amount of options that you will actually need is going to grow.
So you may want
- a radiogroup: Field, Method, Property (event is just a property)
- and then reuse fields like name
- and hide/show options like virtual or default as needed.
Just some examples:
property Foo: Integer read FFoo write FFoo; // field
property Foo: Integer read GetFoo write SetFoo; // method
property Foo: Integer read FFoo write SetFoo; // mixed
property Foo[Bar: Boolean]: Integer read GeFoo write SetFoo; // indexed
property Foo[Bar: Boolean]: Integer read GeFoo write SetFoo; default; // indexed default
property Foo: Integer read FFoo write SetFoo default 5; // default val
property Foo: Integer read FFoo write SetFoo stored GetStored;
property Foo: Integer index 5 read GetFoo write SetFoo stored GetStored; // indexed getter/setter
procedure Bar; inline;
procedure Bar; reintroduce; virtual; abstract; overload; stdcall;
...