🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346442

Re: Czy można się odwołać do zmiennej po nazwie tekstem?

#346442
From: Jan Drawski
Date: Wed, 21 Mar 2018 01:46
45 lines
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-mail
References: <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