コントロールIDを固定で設定するには?

解決


とも  2005-04-01 07:21:13  No: 14050

入力フィールドのコントロールIDを判定して、自動的に文字列を埋め込むアプリケーションと連動させるツールを作りたいのですが、
普通にEditコンポーネントを貼り付けただけだと、ツールを起動するたびに割り当てられるコントロールIDの値が変わってしまいます。
Editコンポーネントに固定のコントロールIDを設定するにはどうしたらよいのでしょうか。


  2005-04-01 08:37:01  No: 14051

コントロールIDって  なんでしょう?
VBみたい  変なIDは、ありませんよ。

WindowHandleのことだったら
無理ってもんさ♪

tagにでも数字いれて  区別したら〜


りおりお  2005-04-01 10:46:29  No: 14052

> 起動するたびに割り当てられるコントロールIDの値が変わってしまいます。

そうですね。Delphi VCL が勝手に付けてくれるようです。

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text := IntToStr(GetWindowLong(Edit1.Handle,GWL_ID));
end;

で確認できますね。コントロールIDは動的に変更できます。

procedure TForm1.Button2Click(Sender: TObject);
begin
  SetWindowLong(Edit1.Handle,GWL_ID,7777);
end;

こんな感じで任意に設定できます。


kkk  2005-04-01 12:07:13  No: 14053

>Editコンポーネントに固定のコントロールIDを設定するにはどうしたらよいのでしょうか。

〜さんのおっしゃる様に、EditコンポーネントのTagプロパティを利用した方がすっきりするような・・・


りおりお  2005-04-01 12:22:35  No: 14054

> 自動的に文字列を埋め込むアプリケーションと連動させるツールを作りたいのですが

アプリケーションの外からは Tag プロパティーを見ることはできませんよ。


kkk  2005-04-01 20:14:48  No: 14055

あっ別のアプリからということね。


sakiyama  2005-04-03 05:40:52  No: 14056

SetProp、GetProp APIを使って固有IDを付けるというのはどうでしょうか


とも  2005-04-11 22:18:39  No: 14057

りおりおさんに教えていただいた方法でコントロールIDの設定ができました。
どうもありがとうございます。


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

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






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