Index: run/JvInterpreterFm.pas
===================================================================
RCS file: /cvsroot/jvcl/dev/JVCL3/run/JvInterpreterFm.pas,v
retrieving revision 1.31
diff -u -r1.31 JvInterpreterFm.pas
--- run/JvInterpreterFm.pas	17 Jan 2006 20:40:36 -0000	1.31
+++ run/JvInterpreterFm.pas	9 Mar 2006 17:03:30 -0000
@@ -473,6 +473,19 @@
 
 function TJvInterpreterFm.SetValue(const Identifier: string; const Value: Variant;
   var Args: TJvInterpreterArgs): Boolean;
+  // Class Fields support begin
+var
+  JvInterpreterForm: TJvInterpreterForm;
+
+  function SetFormValue(Form: TJvInterpreterForm): Boolean;
+  begin
+    result:=false;
+    with Form.FFieldList do
+    if FindVar('', Identifier) <> nil then
+      Result := SetValue(Identifier, Value, Args);
+  end;
+  // Class Fields support end
+
 begin
   if (Args.Obj = nil) and (CurInstance is TJvInterpreterForm) then
   begin
@@ -482,23 +495,33 @@
       Exit;
     end;
     // Class Fields support begin
-    with Form.FFieldList do
-    if FindVar('', Identifier) <> nil then
-    begin
-      Result := SetValue(Identifier, Value, Args);
-      Exit;
-    end;
+    { may be TForm field }
+    Result := SetFormValue(TJvInterpreterForm(CurInstance));
+    if not result then begin
     // Class Fields support end
-    { may be TForm method or published property }
-    Args.Obj := CurInstance;
-    Args.ObjTyp := varObject;
-    try
-      Result := inherited SetValue(Identifier, Value, Args);
-    finally
-      Args.Obj := nil;
-      Args.ObjTyp := 0;
+      { may be TForm method or published property }
+      Args.Obj := CurInstance;
+      Args.ObjTyp := varObject;
+      try
+        Result := inherited SetValue(Identifier, Value, Args);
+      finally
+        Args.Obj := nil;
+        Args.ObjTyp := 0;
+      end;
     end;
   end
+  // Class Fields support begin
+  else
+  if (Args.Obj <> nil) and (Args.ObjTyp = varObject) and
+    (Args.Obj is TJvInterpreterForm) then
+  try
+    JvInterpreterForm:=TJvInterpreterForm(Args.Obj);
+    Args.Obj:=nil;
+    Result := SetFormValue(JvInterpreterForm);
+  finally
+    Args.Obj:=JvInterpreterForm;
+  end
+  // Class Fields support end
   else
     Result := False;
   Result := Result or inherited SetValue(Identifier, Value, Args);
