名前 題名 ▼ takiさん > マスター 助けてください。 > > Form1にButton1、Panel1、StringGrid1、等々を配置します。 > 結果を記録するのにListBox1も配置します。 > > これらのコンポーネントのLeftやTopの位置情報の一覧が欲しいのです。 > 書いたコードは以下のようなもので、一応情報は得られるのですが > スマートではありません。 > > procedure TForm1.Button1Click(Sender: TObject); > var > i:integer; > s:string; > obj:TComponent; > begin > for i := 0 to Form1.ComponentCount - 1 do begin > obj := Form1.Components[i]; > s := obj.Name; > listbox1.Items.Append(s); > // > if obj is TButton then begin > s := inttostr(TButton(obj).top); > listbox1.Items.Append(s); > end; > // > if obj is TPanel then begin > s := inttostr(TPanel(obj).top); > listbox1.Items.Append(s); > end; > // > if obj is TStringGrid then begin > s := inttostr(TStringGrid(obj).top); > listbox1.Items.Append(s); > end; > end; > end; > > > Form1.Components[i]ではClassNameも得られるのですが、 > 具体的な使い方がわかりません。 > > s := inttostr((obj as obj.ClassName).Top); > > とかしたらコンパイラに叱られました。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link