Article View: pl.comp.lang.delphi
Article #346442Re: Czy można się odwołać do zmiennej po nazwie tekstem?
From: Jan Drawski
Date: Wed, 21 Mar 2018 01:46
Date: Wed, 21 Mar 2018 01:46
45 lines
1919 bytes
1919 bytes
W dniu 2018-03-21 o 00:44, Roman Tyczka pisze:
> On Tue, 20 Mar 2018 09:29:31 -0700 (PDT), ExM 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ę :)
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;
> Może napisz jaki masz cel, gdzie zmierzasz?
To podstawa.
--
Pozdrawiam
Janek
Technical Details
Message-ID:
<5ab1b981$0$667$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<121d9004-81f5-4ce9-9c86-3e2c46815153@googlegroups.com> <1hiujpxl68d3y.dlg@tyczka.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Czy można się odwołać do zmiennej po nazwie tekstem? Newsgroups: pl.comp.lang.delphi References: <121d9004-81f5-4ce9-9c86-3e2c46815153@googlegroups.com> <1hiujpxl68d3y.dlg@tyczka.com> From: Jan Drawski <dfghdfg@o2.pl> Date: Wed, 21 Mar 2018 02:46:40 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <1hiujpxl68d3y.dlg@tyczka.com> Lines: 46 Message-ID: <5ab1b981$0$667$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 37.47.33.27 X-Trace: 1521596801 unt-rea-a-01.news.neostrada.pl 667 37.47.33.27:13174 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit