名前 題名 ▼ Mr.XRAYさん > > //TObjectには何でも入っちゃう > > Sender := Memo1; > > Sender は TObject です. > TMemo のご先祖様は TObject です. > したがって,そのまま代入できます. > > そうではない Integer, String 型のような単純型の場合は,次のようにできます. > > procedure TForm1.FormCreate(Sender: TObject); > begin > Memo1.Lines.Clear; > end; > > procedure TForm1.Button1Click(Sender: TObject); > var > LIntValue : Integer; > begin > //TObjectには何でも入っちゃうけど... > //SenderはTObjectなのでTObjectでキャストする > //TMemo等は大元がTObjectなのでキャストの必要はない > Sender := TObject(150); > > //取り出す時は何として取り出すのかを指定する > LIntValue := Integer(Sender); > Memo1.Lines.Add(IntToStr(LIntValue)); > end; > > procedure TForm1.Button2Click(Sender: TObject); > var > LpStrText : PString; > LText : string; > begin > //文字列は,動的なメモリ領域を確保してから > New(LpStrText); > > try > //逆参照でポインタ型の変数代入して > //SenderはTObjectなのでTObjectでキャストする > //TMemo等は大元がTObjectなのでキャストの必要はない > LpStrText^ := 'Delphi-ABC'; > Sender := TObject(LpStrText); > > //取り出す時は何として取り出すのかを指定する > //これも逆参照で実の値を取り出す > LText := PString(Sender)^; > Memo1.Lines.Add(LText); > finally > //動的に確保したメモリ領域は解放しなければならない > Dispose(PString(TObject(Sender))); > end; > end; > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link