mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 20:29:32 +02:00
* Raise error if property cannot be written (Enhanced patch from Ondrej Pokorny, bug ID #32586)
git-svn-id: trunk@37495 -
This commit is contained in:
parent
80226e3af4
commit
3d3bbcfa9c
@ -1509,6 +1509,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
Resourcestring
|
||||
SErrCannotWriteToProperty = 'Cannot write to property %s.';
|
||||
|
||||
Procedure SetOrdProp(Instance : TObject;PropInfo : PPropInfo;Value : Int64);
|
||||
type
|
||||
TSetInt64ProcIndex=procedure(index:longint;i:Int64) of object;
|
||||
@ -1578,6 +1581,8 @@ begin
|
||||
TSetIntegerProc(AMethod)(Value);
|
||||
end;
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1820,6 +1825,8 @@ begin
|
||||
else
|
||||
TSetIntfStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
tkInterfaceRaw:
|
||||
@ -1880,6 +1887,8 @@ begin
|
||||
else
|
||||
TSetPointerProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
tkInterface:
|
||||
@ -1961,6 +1970,8 @@ begin
|
||||
else
|
||||
TSetDynArrayProc(AMethod)(TDynArray(Value));
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2059,6 +2070,8 @@ begin
|
||||
else
|
||||
TSetShortStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
tkAString:
|
||||
@ -2079,8 +2092,12 @@ begin
|
||||
else
|
||||
TSetAnsiStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2176,6 +2193,8 @@ begin
|
||||
else
|
||||
TSetWideStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -2260,6 +2279,8 @@ begin
|
||||
else
|
||||
TSetUnicodeStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -2342,6 +2363,8 @@ begin
|
||||
else
|
||||
TSetRawByteStrProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
@ -2487,6 +2510,8 @@ begin
|
||||
TSetCurrencyProcIndex(AMethod)(PropInfo^.Index,Value);
|
||||
end;
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -2566,6 +2591,8 @@ begin
|
||||
else
|
||||
TSetMethodProc(AMethod)(Value);
|
||||
end;
|
||||
else
|
||||
raise EPropertyError.CreateFmt(SErrCannotWriteToProperty, [PropInfo^.Name]);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user