Article View: pl.comp.lang.delphi
Article #346913Re: RTTI SetValue i TValue.FromVariant
From: immo
Date: Fri, 25 Jan 2019 09:32
Date: Fri, 25 Jan 2019 09:32
25 lines
2494 bytes
2494 bytes
W dniu piątek, 25 stycznia 2019 09:51:28 UTC+1 użytkownik immo napisał: > Ten problem konkretnie w Delphi XE2, ale nakierowałeś mnie - muszę to sprawdzić w najnowszym :) I sprawdzone - nie ma znaczenia :) W RIO tez jest tak samo. Co ciekawe w TValue.Cast typ w PTypeInfo jest poprawny - czyli tkInteger. --- trochę sobie pobiegałem po kodzie źródłowym i w System.rtti jest TValue.TryCast gdzie AtypeInfo jest tkInteger (czyli to co ma być) a System.TypeInfo(TValue) jest tkString bo faktycznie jako string jest przechowywany Variant. I teraz całą prockę przechodzi i na koniec mamy linię Result := Conversions[FData.FTypeInfo^.Kind, ATypeInfo^.Kind](Self, ATypeInfo, AResult); Gdzie Conversions to const Conversions: array[TTypeKind,TTypeKind] of TConvertFunc = ( // [source, target] i dla tkInteger jako target i tkString jako source mamy = ConvFail :) Trochę to dziwne, bo nie widzę problemu konwersji stringa do integera :P No ale problem rozwiązany - w sensie - Delphi tak ma, nie wnikając w zasadność. pozdrawiam, Przemek O.
Technical Details
Message-ID:
<01a7122f-fd72-442f-9e50-a376c0fbb979@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!1.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!q69no252501itb.0!news-out.google.com!v141ni343ita.0!nntp.google.com!k10no251843itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<26a7a704-1917-44d0-9661-5e95ad255534@googlegroups.com> <xhs5aachxoxt.dlg@tyczka.com> <b0793d30-5159-4dd7-b059-d0add1131590@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:294f:: with SMTP id p76mr4739581itp.34.1548408750723; Fri, 25 Jan 2019 01:32:30 -0800 (PST) X-Received: by 2002:a9d:ef3:: with SMTP id 106mr156190otj.6.1548408750498; Fri, 25 Jan 2019 01:32:30 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!feeder.erje.net!1.eu.feeder.erje.net!proxad.net!feeder1-2.proxad.net!209.85.166.216.MISMATCH!q69no252501itb.0!news-out.google.com!v141ni343ita.0!nntp.google.com!k10no251843itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Fri, 25 Jan 2019 01:32:30 -0800 (PST) In-Reply-To: <b0793d30-5159-4dd7-b059-d0add1131590@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.65.27.242; posting-account=uWBjDgoAAACxkgIP6dtE4dpCnc16V86n NNTP-Posting-Host: 77.65.27.242 References: <26a7a704-1917-44d0-9661-5e95ad255534@googlegroups.com> <xhs5aachxoxt.dlg@tyczka.com> <b0793d30-5159-4dd7-b059-d0add1131590@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <01a7122f-fd72-442f-9e50-a376c0fbb979@googlegroups.com> Subject: Re: RTTI SetValue i TValue.FromVariant From: immo <przemek-o@soft-system.pl> Injection-Date: Fri, 25 Jan 2019 09:32:30 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit