Browse Source

* Fix issue #38442

git-svn-id: trunk@49047 -
michael 4 năm trước cách đây
mục cha
commit
a1c392e0af
1 tập tin đã thay đổi với 34 bổ sung9 xóa
  1. 34 9
      packages/regexpr/src/regexpr.pas

+ 34 - 9
packages/regexpr/src/regexpr.pas

@@ -1615,40 +1615,65 @@ end; { of function TRegExpr.GetModifierStr
 
 
 procedure TRegExpr.SetModifierG(AValue: boolean);
 procedure TRegExpr.SetModifierG(AValue: boolean);
 begin
 begin
-  fModifiers.G := AValue;
+  if fModifiers.G <> AValue then
+  begin
+    fModifiers.G := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierI(AValue: boolean);
 procedure TRegExpr.SetModifierI(AValue: boolean);
 begin
 begin
-  fModifiers.I := AValue;
+  if fModifiers.I <> AValue then
+  begin
+    fModifiers.I := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierM(AValue: boolean);
 procedure TRegExpr.SetModifierM(AValue: boolean);
 begin
 begin
-  fModifiers.M := AValue;
+  if fModifiers.M <> AValue then
+  begin
+    fModifiers.M := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierR(AValue: boolean);
 procedure TRegExpr.SetModifierR(AValue: boolean);
 begin
 begin
-  fModifiers.R := AValue;
+  if fModifiers.R <> AValue then
+  begin
+    fModifiers.R := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierS(AValue: boolean);
 procedure TRegExpr.SetModifierS(AValue: boolean);
 begin
 begin
-  fModifiers.S := AValue;
+  if fModifiers.S <> AValue then
+  begin
+    fModifiers.S := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierX(AValue: boolean);
 procedure TRegExpr.SetModifierX(AValue: boolean);
 begin
 begin
-  fModifiers.X := AValue;
+  if fModifiers.X <> AValue then
+  begin
+    fModifiers.X := AValue;
+    InvalidateProgramm;
+  end;
 end;
 end;
 
 
 procedure TRegExpr.SetModifierStr(const AStr: RegExprString);
 procedure TRegExpr.SetModifierStr(const AStr: RegExprString);
 begin
 begin
-  if not ParseModifiers(PRegExprChar(AStr), Length(AStr), fModifiers) then
+  if ParseModifiers(PRegExprChar(AStr), Length(AStr), fModifiers) then
+    InvalidateProgramm
+  else
     Error(reeModifierUnsupported);
     Error(reeModifierUnsupported);
-end; { of procedure TRegExpr.SetModifierStr
-  -------------------------------------------------------------- }
+end;
 
 
 { ============================================================= }
 { ============================================================= }
 { ==================== Compiler section ======================= }
 { ==================== Compiler section ======================= }