Article View: pl.comp.lang.delphi
Article #346474Re: Czy można się odwołać do zmiennej po nazwie tekstem?
From: Roman Tyczka
Date: Wed, 21 Mar 2018 07:47
Date: Wed, 21 Mar 2018 07:47
45 lines
2195 bytes
2195 bytes
On Wed, 21 Mar 2018 02:46:40 +0100, Jan Drawski wrote:
>>> Takie pytanie - czy da się odwołać do zmiennej po jej nazwie ale podanej jako string?
>>>
>>> Coś jak: TButton(FindComponent('Button1')).Caption := 'Nowy tekst';
>>> - tylko w odniesieniu do zmiennej.
>>
>> Nie da się.
>
> Da się :)
Nie da :-)
> uses
> TypInfo, Rtti;
>
> procedure TForm1.Button1Click(Sender: TObject);
> type
> TRec = record
> I: Integer;
> end;
> var
> RecData: TRec;
> RecValue: TValue;
> Ctx: TRttiContext;
> begin
> Ctx := TRttiContext.Create;
> try
> TValue.Make(nil, TypeInfo(TRec), RecValue);
>
> Ctx.GetType(TypeInfo(TRec)).GetField('I').SetValue(RecValue.GetReferenceToRawData,
> 111);
> RecValue.ExtractRawData(@RecData);
> ShowMessage(IntToStr(RecData.I));
> finally
> Ctx.Free;
> end;
> end;
Użyłeś tutaj adresu zmiennej @RecData. Nie o to chodziło.
--
pozdrawiam
Roman Tyczka
Technical Details
Message-ID:
<a4g4gv0s4xg6.dlg@tyczka.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<121d9004-81f5-4ce9-9c86-3e2c46815153@googlegroups.com> <1hiujpxl68d3y.dlg@tyczka.com> <5ab1b981$0$667$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.man.lodz.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer02.am4!peer.am4.highwinds-media.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail From: Roman Tyczka <noemail@because.no> Subject: Re: Czy można się odwołać do zmiennej po nazwie tekstem? Newsgroups: pl.comp.lang.delphi User-Agent: 40tude_Dialog/2.0.15.84 MIME-Version: 1.0 Sender: romek@tyczka.no.found References: <121d9004-81f5-4ce9-9c86-3e2c46815153@googlegroups.com> <1hiujpxl68d3y.dlg@tyczka.com> <5ab1b981$0$667$65785112@news.neostrada.pl> Date: Wed, 21 Mar 2018 08:47:30 +0100 Message-ID: <a4g4gv0s4xg6.dlg@tyczka.com> Lines: 45 Organization: Telekomunikacja Polska NNTP-Posting-Host: 94.75.90.137 X-Trace: 1521618450 unt-rea-b-01.news.neostrada.pl 31359 94.75.90.137:3770 X-Complaints-To: abuse@news.neostrada.pl X-Received-Body-CRC: 3075468295 X-Received-Bytes: 2073 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit