Hallo,
ich habe mich heute mit der JvInspector-Komponente beschäftigt (JVCL 3.0), ein normales String-Item hinzufügen funktioniert mit der Funktion, die ich mir gecoded habe auch wunderbar, allerdings würde ich gerne ein Enum-Item (siehe TJvInspectorEnumItem) zu meinem JvInspector hinzufügen. Leider geht es nicht mal eben mit TJvInspectorEnumItem.Create, man müsste erst ein TJvInspectorVarData-Objekt mit den richtigen Parametern erzeugen (denke ich mal, ist beim Hinzufügen eines String-Items auch so). Nur wie jetzt der TypeInfo von diesem enum wäre, weiss ich nicht
(set ist es nicht).
Hier der Code zum erzeugen eines "normalen" String-Items:
Code:
function AddField(eName, eCategory, eValue: String): TJvCustomInspectorItem;
var i: integer;
eParent: TJvCustomInspectorItem;
TempVar: Pointer;
begin
// frmMain ist mein Formular und jviCode der JvInspector
eParent := nil;
for i := 0 to frmMain.jviCode.Root.Count -1 do begin
if (frmMain.jviCode.Root.Items[i].DisplayName = eCategory) and (frmMain.jviCode.Root.Items[i] is TJvInspectorCustomCategoryItem) then
eParent := frmMain.jviCode.Root.Items[i];
end;
if eParent = nil then begin
eParent := TJvInspectorCustomCategoryItem.Create(frmMain.jviCode.Root, nil);
eParent.DisplayName := eCategory;
end;
if eName <> '' then begin
New(PString(TempVar));
PString(TempVar)^ := eValue;
Result := TJvInspectorVarData.New(eParent, eName, TypeInfo(String), TempVar);
frmMain.jviCode.Root.Sort;
eParent.Expanded := True;
end
else begin
Result := nil;
frmMain.jviCode.Root.Sort;
end;
end;
Danke im Voraus