[リストへもどる]
一括表示

投稿時間:2004/07/28(Wed) 17:58
投稿者名:おさるさん
Eメール:
URL :
タイトル:
コントロールの自動配置について
はじめまして。
初めて投稿させて頂きます。
よろしくお願い致します。

早速質問させて頂きたいのですが、
デザイン時にツールボックスからコントロール(テキストボックス)を選んで
フォームに貼り付けるのですが、これを行わないで、
ロジックのForm_Loadからテキストボックスを何個か生成して画面に表示する事はできないのでしょうか?

自分で調べたのは、デザイン時にFormにテキストボックスを一つだけ貼り付けておけば、
後は動的に配置できるロジックはありました。
そのロジックは以下になります。


Private Sub Form_Load()

    Dim i As Integer
    
    For i = 1 To 5
        Load Text1(i)
        Text1(i).Top = Text1.Top(i) + Text1(i).Height * i
        Text1(i).Visible = True
    Next

End Sub
Text1のindexを0に設定しておく


ただ今回はデザイン時に一つもテキストボックスを配置せずに、
一からロジックで生成したいのです。
どなたか教えて頂けないでしょうか?
宜しくお願い致します。

投稿時間:2004/07/28(Wed) 18:16
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: コントロールの自動配置について
> ロジックのForm_Loadからテキストボックスを何個か生成して画面に表示する事はできないのでしょうか?

VB6であれば、Controls コレクションのAdd メソッドが使えます。
サンプル ディレクトリの \CtlsAdd\ にあるプロジェクトを試してみてください。

投稿時間:2004/07/28(Wed) 19:09
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^2: コントロールの自動配置について
魔界の仮面弁士さん。
的確な返信をして頂きまして、誠にありがとうございます。

魔界の仮面弁士さんのおっしゃるようにしたら出来ました!
ただ情けない話なんですが、
出来たことを上司に報告しにいったら、環境はVB5でやるんだって言われてしまいました。
せっかく魔界の仮面弁士さんにお答えして頂いたのに、
私の不備でこうなってしまいまして、申し訳ございませんでした。
VB5でControlsコレクションのAddメソッドに変わる方法はないのでしょうか?
宜しくお願い致します。

投稿時間:2004/07/28(Wed) 20:36
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: コントロールの自動配置について
> VB5でControlsコレクションのAddメソッドに変わる方法はないのでしょうか?
ありません。
どうしてもやるならば、APIを使ってコントロールを作成する事になります。

ただしAPIの場合、各コントロールのプロパティ・メソッド・イベント等は
一切使えませんから、全てをAPIでコーディングする必要が生じます。


# なお、「実行時」ではなく「開発時」の話なら、Visual Basic のアドインを作成する事で、
# コントロールを動的に作成する事が可能です。(VB5のアプリケーション ウィザードのように)

投稿時間:2004/07/28(Wed) 22:58
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^4: コントロールの自動配置について
何度も返信して頂いてありがとうございます。
APIを使ってコントロールを作成するんですね。
すべてをAPIでコーディングするのは、
まだまだ初心者の私にはなかなか大変ですが、
良い機会ですし、APIを調べてやってみようと思います。
魔界の仮面弁士様、本当にありがとうございました。

投稿時間:2004/07/29(Thu) 10:54
投稿者名:Say
Eメール:
URL :
タイトル:
Re^5: コントロールの自動配置について
> 良い機会ですし、APIを調べてやってみようと思います。

サンプルならこの辺に

テキストボックスをプログラムで作成するには?
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200406/04060058.txt

投稿時間:2004/07/30(Fri) 10:03
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^6: コントロールの自動配置について
Say様
サンプルのアドレスを教えて頂き、ありがとうございました。
自分でも調べてはいたのですが、正直あまりサンプルコードが見つからなかったので助かりました。
Say様ありがとうございました。

投稿時間:2004/07/30(Fri) 10:40
投稿者名:Say
Eメール:
URL :
タイトル:
Re^7: コントロールの自動配置について
サンプルが見つからないのは、VBでやるメリットがないからです。
私があのコードを書いたのも、単に技術的興味からにすぎません。

はっきりいってCreateWindow(Ex)を使うのなら、
VBでなく「C/C++とSDK」の組み合わせのほうがましだったりします。

いずれにしても、CreateWindow(Ex)を使いこなすにはSDKの知識が不可欠です。

MSDNの「プラットフォームSDK」に目を通してください.
また、VBのサンプルは少ないのでC/C++になりますが、
「猫でもわかるプログラミング」 http://www.kumei.ne.jp/c_lang/
の「Windows SDK編」を順に見ておくといいでしょう。
(私のサンプルも実はここのCコードを元にVB用におとしたものです。)

投稿時間:2004/07/30(Fri) 12:09
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^8: コントロールの自動配置
Say様
何度も何度もお答え頂いてありがとうございます。
確かにSay様のおっしゃっる通りなんらかのメリットがあれば、
VBでやるサンプルがもっと出回っていてもおかしくないですよね。

> いずれにしても、CreateWindow(Ex)を使いこなすにはSDKの知識が不可欠です。

SDKの知識が不可欠なんですね。
Say様のおっしゃるとおりMSDNの「プラットフォームSDK」や
「猫でもわかるプログラミング」をまず目を通してから、
今回の件を再考させていただきます。
様々な事を教えて頂き、誠にありがとうございました。

投稿時間:2004/07/29(Thu) 17:02
投稿者名:おじん
Eメール:
URL :
タイトル:
Re: コントロールの自動配置について
解決しているようですが、おじさんなら、こうしています
Text1(0).visible=false
をいれる。見えなければ「ない」のと同じ。

投稿時間:2004/07/30(Fri) 09:59
投稿者名:おさるさん
Eメール:
URL :
タイトル:
Re^2: コントロールの自動配置について
おじん様
お答えありがとうございました。
そうなんですよね!見えなければ「ない」のと同じですよね。
ただ私の上司は、例え見えていなくても、
テキストボックスが存在する事自体があまりおきにめさないようなんです…。
もう少し話し合いをしてみたいと思います。
おじん様ありがとうございました。