ミ,,゚Д゚彡フサギコのフサフサDelphi談話室�B
■ このスレッドは過去ログ倉庫に格納されています
0620デルファイの名無しさん
NGNGTMaxSet = set of Byte;
PMaxSet = ^TMaxSet;
function StrToSet(TypeInfo: PTypeInfo; const Value: string): TMaxSet;
という宣言を持ち
type
TEle = (e00, e01, …(中略)… e38, e39);
TRan = e01..e35;
TSet = set of TRan;
var
A: TSet;
begin
PMaxSet(@A)^ := StrToSet(TypeInfo(TSet), 'e10 e20');
という使い方で動作する関数StrToSetを作ることができた、とだけ言っておきましょう…
なんか悔しいので中身は教えてあげない。
ヒント: メモリを破壊する心配は不要。レジスタに収まらない戻り値は、
呼びだし側が確保したバッファのアドレスが渡されるので、使う分だけ書き換えればOK。
( まあこんな事しなくても procedure StrToSet(…, out Result); でいいですけどね )
■ このスレッドは過去ログ倉庫に格納されています