A
Hi,
mach ne neue Klasse:
class __declspec(delphireturn) int64_Set;
und schreib dir ein neuen Propertyeditor. Die Methoden des TSetProperty- Editors sehen so aus:
{ TSetProperty }
function TSetProperty.GetAttributes: TPropertyAttributes;
begin
Result := [paMultiSelect, paSubProperties, paReadOnly, paRevertable];
end;
procedure TSetProperty.GetProperties(Proc: TGetPropProc);
var
I: Integer;
begin
with GetTypeData(GetTypeData(GetPropType)^.CompType^)^ do
for I := MinValue to MaxValue do
Proc(TSetElementProperty.Create(Self, I));
end;
function TSetProperty.GetValue: string;
var
S: TIntegerSet;
TypeInfo: PTypeInfo;
I: Integer;
begin
Integer(S) := GetOrdValue;
TypeInfo := GetTypeData(GetPropType)^.CompType^;
Result := '[';
for I := 0 to SizeOf(Integer) * 8 - 1 do
if I in S then
begin
if Length(Result) <> 1 then Result := Result + ',';
Result := Result + GetEnumName(TypeInfo, I);
end;
Result := Result + ']';
end;
Es sollte ein leichtes für dich sein, die Implementation für Tint64_SetProperty zu finden.
eventuell musst du noch einen Editor für die Elemente erstellen ( ähnlich wie TSetElementProperty), wenn es nicht funzt. Ist aber unwahrscheinlich.