フォームを重ねて表示するには?

解決


きよ  2003-12-03 13:28:14  No: 5895

まだDelphiを始めて間もない者です。

今、画面上でマウスを使ってボタンを押すと文字入力ができる
(銀行のATMのような)ひらがな一覧表(小さめのフォーム)を作っています。
そこで、文字入力をするフォーム(大きめのフォーム)がいくつかあって、それぞれのフォームの上に、そのひらがな一覧表フォームを表示したいと思ったのですが、フォーカスが文字入力のフォームに移ると一覧表フォームが消えてしまいました。
フォームを重ねて表示することはできるのでしょうか?

わかりにくい質問のしかたで申し訳ありません。よろしくお願いします。


にしの  2003-12-03 17:53:50  No: 5896

ひらがな一覧表フォームのFormStyleプロパティを、fsStayOnTopにすればよろしいかと思います。


きよ  2003-12-03 22:39:00  No: 5897

ありがとうございました。
かなり初歩的な質問ですみませんでした。

もうひとつ質問させていただきたいのですが・・・
文字入力フォームにはEditを3つ配置してあります。
ひらがな一覧表フォームのボタンを押すと、フォーカスがある場所というかキャレットがある場所に、文字を直接入力できるようにしようと考えているのですが、
どのようにキャレットの有無を判断したらよいかがわからなくて・・・
また初歩的な質問かもしれませんが、ご指導よろしくお願いします。


にしの  2003-12-04 01:07:13  No: 5898

試していませんが、ActiveControlで出来ませんか?
文字入力フォームを mojiForm, ひらがな一覧表フォームの[あ]ボタンをButtonAとすると、ButtonAのOnClickにて、
begin
  if Assigned(mojiForm.ActiveControl) then
  begin
    if mojiForm.ActiveControl Is TCustomEdit then
    begin
      (mojiForm.ActiveControl As TCustomEdit).SelText := 'あ';
    end;
  end;
end;

こんな感じに。
TCustomEditクラス以外のクラスから派生したものであれば、if文を増やせばよろしいかと。
もちろん、別の管理方法を持っているのであれば、そちらを使用してください。
これは一例ですから。


きよ  2003-12-04 10:16:29  No: 5899

本当に助かりました!!ありがとうございました!
いろいろ調べていてActiveControlかな・・・とは思ったのですが、
使い方がよくわからなかったので、例を書いていただいて本当にうれしいです。
またお世話になる機会があるかもしれませんが、よろしくお願いします。
にしのさん、ありがとうございました。


きよ  2003-12-04 10:19:01  No: 5900

解決チェックを忘れていました。


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

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






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