掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EnumChildWindowsでTLabelを取得するには? (ID:45399)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
では、私は「(c)ソース解析型」の取っ掛かりの部分だけ。 フォームにメモ、ボタン、オープンダイアログを置いて ボタンクリックイベントに procedure TForm1.Button1Click(Sender: TObject); var dfmName: string; fs: TFileStream; ms: TMemoryStream; begin if OpenDialog1.Execute then begin dfmName := OpenDialog1.FileName; fs := TFileStream.Create(dfmName, fmOpenRead); ms := TMemoryStream.Create; try try ObjectResourceToText(fs, ms); ms.Position := 0; Memo1.Lines.LoadFromStream(ms); except Memo1.Lines.LoadFromStream(fs); end; finally ms.Free; fs.Free; end; end; end; を記述。 核の部分のtry〜exceptの部分はいい加減で バイナリでないdfmを読むとエラーになるので エラーになったらテキストだろうと限定しています。 なので、他のエラーの場合は考えていません。 あと問題は、Delphi6(多分?)以降は全角文字が "#12345"のような表記になっているのでこれの変換が必要です。 例) Font.Name = #65325#65331' '#26126#26397 これは「MS 明朝」です。 IDE自身がフォームを読み込むんだから、内部にそれらしい変換関数が あっても良さそうですけど。 この辺はDEKOさんが詳しいかも。 あとは(一番面倒な?)語句解析を何とかすれば 全フォームを一気に解析も夢ではないかと(^^ゞ Label限定ならそれほど難しくはないかも。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.