掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EnumChildWindowsでTLabelを取得するには? (ID:45402)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Questさんすごいです。 CodeToString関数だけ抜き出して試しましたが、完璧ですね! …で、力技のところ誠に恐縮なんですが、、、 >IDE自身がフォームを読み込むんだから、内部にそれらしい変換関数があっても良さそう それ、ClassesにTParserがありました \(^o^)/ // dfm内部形式の文字列をWideStringに変換 // 例1:#65325#65331' '#65328#12468#12471#12483#12463 → MS Pゴシック // 例2:'Label1' → Label1 // 例3:'Button2'#12384#12424 → Button2だよ // 例4:Delphi → Delphi function TokenToWideString(Token: String): WideString; var Stream: TStringStream; Parser: TParser; begin Stream:=TStringStream.Create(Token); try Parser:=TParser.Create(Stream); try Result:=Parser.TokenWideString; if Result='' then Result:=Parser.TokenString; finally Parser.Free; end; finally Stream.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); const aStr: array[0..3] of String =( '#65325#65331'' ''#65328#12468#12471#12483#12463', '''Label1''', '''Button2''#12384#12424', 'Delphi' ); var I: Integer; begin for I:=Low(aStr) to High(aStr) do begin Memo1.Lines.add(CodeToString(aStr[I])); Memo1.Lines.add(TokenToWideString(aStr[I])); end; end; それと、EXEのリソースをObjectBinaryToTextで変換し、それを使ってdfmの解析も出来ました。 もう少しパーツを作ってつなぎ合わせれば(d)が作れそうな感じです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.