Panelの上にあるEdit1のForm上の位置を知るには?


エヴァンズ  2014-02-16 08:39:32  No: 46044

Panelの上にあるEdit1があります。

これのEdit1のForm上の位置を知りたいのですが、どういう方法がありますか?


Mr.XRAY  2014-02-16 09:41:27  No: 46045

はい.

//-----------------------------------------------------------------------------
//  Edit1のForm1上の位置を計算
//  動作確認 Windows 7 U64(SP1) + Delphi XE5(UP2) Pro FireMonkey HD
//-----------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  APointF : TPointF;
begin
  APointF := Edit1.LocalToAbsolute(PointF(0, 0));
  ShowMessage(IntToStr(Trunc(APointF.X)));
end;

//-----------------------------------------------------------------------------
//  Edit1のForm1上の位置を計算
//  動作確認 Windows 7 U64(SP1) + Delphi XE Pro
//-----------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  APoint : TPoint;
begin
  APoint := Edit1.ClientToParent(Point(0, 0), Form1);
  ShowMessage(IntToStr(APoint.X));
end;


Mr.XRAY  2014-02-16 09:43:31  No: 46046

追記です.
上のコードは,Edit1の左上の座標を変換するものです.


Mr.XRAY  2014-02-16 10:00:01  No: 46047

一応,参考のために.
このようなメソッドやプロパティをどうやって調べるかですが,

(1) embarcadero のオンラインヘルプ (DocWiki) をブラウズする
(2) TEdit を検索
(3) 検索リストの中から適当なのをクリック
(4) TEdit へのリンクがあるか探す(ブラウザでページ内検索)
(5) TEdit のページへジャンプしたら,メソッドあるいは,プロパティを表示する
(6) 自分の目的のものがないか探す

ない場合は,このようなコミュニティの場で,

(7) ヘルプで以下を探しましたが見つかりませんでした.と書いて訊いてみる
    [Vcl.StdCtrls.TEdit のメソッド]
    http://docwiki.embarcadero.com/Libraries/XE5/ja/Vcl.StdCtrls.TEdit_Methods

では,オンラインヘルプ等のリンクはどこにあるか,
例えば,手前味噌ではが,以下にあります.
[Delphi のオンラインヘルプ等]
http://mrxray.on.coocan.jp/Delphi/Others/A_Delphi_OnlieHelphtm.html


エヴァンズ  2014-02-16 18:10:36  No: 46048

Thank you for responding to my questions so quickly.
You have been very helpful.
とてもうれしいです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加