[fpc-devel]patch for ReadPropValue
Michael Van Canneyt
michael.vancanneyt at wisa.be
Mon Dec 15 10:01:11 CET 2003
On Sun, 14 Dec 2003, Darek Mazur wrote:
>
> Hi
>
> I investigated read property from Lazarus LRS, and I noticed that tColor
> property with Identifies don't work and crash program (for example
> tForm.COLOR:=clWindow)
>
> I write small patch to avoid this
>
> this is new function in CLASSES.INC
> // ********************start patch
> function GlobalIdentToInt(const Ident: String; var Int: LongInt):boolean;
> var
> i : Integer;
> begin
>
> with IntConstList.LockList do
> try
> for i := 0 to Count - 1 do
> if TIntConst(Items[I]).IdentToIntFn(Ident, Int) then exit(True);
> Result := false;
> finally
> IntConstList.UnlockList;
> end;
>
> end;
> // *************stop patch
>
> and changes in READER.INC
> in procedure TReader.ReadPropValue(Instance: TPersistent; PropInfo:
> Pointer);
>
> from:
> case PropType^.Kind of
> tkInteger:
> if FDriver.NextValue = vaIdent then
> begin
> Ident := ReadIdent;
> // *************start patch
> if GlobalIdentToInt(Ident,Value) then
> SetOrdProp(Instance, PropInfo, Value)
> else
> raise EReadError.Create(SInvalidPropertyValue);
> // *************stop patch
> end else
> SetOrdProp(Instance, PropInfo, ReadInteger);
> tkBool:
> SetOrdProp(Instance, PropInfo, Ord(ReadBoolean));
>
> with this patch Delphi DFM converted to Lazarus LRS works fine
Committed the patch, thank you.
Michael.
More information about the fpc-devel
mailing list