- - PR -
【Delphi(デルファイ)】コントロール配列のつくりかた
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-16 11:56
Delphiについて他に質問できそうな所が無かったので、
VBに似ていると言われているようなのでここで質問させてください>< Delphiをインストールしてかれこれ1時間ほど コントロール配列の作成をしていますができません。 btn1〜3を作成し、Label1に「1」or「2」or「3」を出力、という極単純なことがしたいのです。 http://www.w-frontier.com/delphi/4_calc.htmlを参考に作成しています。 方法↓ btn1〜3を作成する。 [Shift]を押下したままbtn1〜3をクリックして選択する。 ダブルクリックする。 以上の方法でできると書いてありますが、 結果はbtn3をクリックすると「3」と出力されるだけで、 btn1,btn2は音沙汰無しです。 場違いだとは思いますが、 もしDelphiを使用されたことがあるという方がいらっしゃいましたら、ご教授くださいませ。 実行コードは以下=========================================== unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btn1: TButton; btn2: TButton; btn3: TButton; Label1: TLabel; procedure btn3Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn3Click(Sender: TObject); var s : Char ; begin if Sender is TButton then begin s := TButton(Sender).Name[4] ; Label1.Caption := s; end; end ; end. [ メッセージ編集済み 編集者: わしこ 編集日時 2006-06-16 13:03 ] | ||||
|
投稿日時: 2006-06-16 13:24
貼り付けてあったコードでテストしてみましたが、うまく動きました。
もしかしたら、ボタン1と2にクリックイベントをセットしていないのでは? | ||||
|
投稿日時: 2006-06-16 13:35
未記入さん、お返事ありがとうございます。。
ボタン1と2のクリックイベントをセットするというのは procedure TForm1.btn3Click(Sender: TObject); begin [略] end ; だけじゃなく procedure TForm1.btn1Click(Sender: TObject); と procedure TForm1.btn2Click(Sender: TObject); を 追加するという意味ですよね? そしたらコントロール配列にする意味がなくなってしまうのではないでしょうか? VBでは、ひとつのコントロールをコピペしたら 必然的にコントロール配列になっていたのですが、 Delphiでは同じ方法をとってもコントロール配列にならないのですね。 | ||||
|
投稿日時: 2006-06-16 13:45
私がコントロール配列の概念を理解できていないのかもしれませんが、
ボタン1とボタン2のイベントのOnClickに「btn3Click」と入れれば、 ボタン1・2・3すべて「btn3Click」のイベントが実行されると思います。 的外れな回答であったならすいません。 | ||||
|
投稿日時: 2006-06-16 13:53
未記入さん、レスありがとうございます。
ボタン1、2を押したときに同時にボタン3を押したいのではなく、 初回の書き込み--------------- btn1〜3を作成し、Label1に「1」or「2」or「3」を出力、という極単純なことがしたいのです。 ---------------------------- 上の意味は、 ボタン1を押した→「1」と表示 ボタン2を押した→「2」と表示 ボタン3を押した→「3」と表示 という動きにしたいのです。 ボタンxを押した→「x」と表示 という動きを1〜3に適応させればいいので コントロール配列にしようと思ったわけです。 私の書き込みが悪くお手数おかけしてすみませんがよろしくお願いいたします。 | ||||
|
投稿日時: 2006-06-16 13:58
[quote]
わしこさんの書き込み (2006-06-16 13:53) より: 未記入さん、レスありがとうございます。 ボタン1、2を押したときに同時にボタン3を押したいのではなく、 初回の書き込み--------------- btn1〜3を作成し、Label1に「1」or「2」or「3」を出力、という極単純なことがしたいのです。 ボタン1、2を押したときにボタン3のイベントが発生するというのが正しいのでは? | ||||
|
投稿日時: 2006-06-16 13:59
デルファイは触った事がないんですが、
デルファイだと、配列の変数名が変わるんですか? 配列って、変数名が同じで、添え字によって指定されるものと 思ってたもので。 | ||||
|
投稿日時: 2006-06-16 14:06
七味唐辛子さん、レスありがとうございます。
私の初回の書き込みでは 『ボタン1、2を押したときにボタン3のイベントが発生する』と受け取られても仕方ない、 という意味ですよね? ご指摘大変ありがとうございます。 確かに説明が不足していて意図する内容の書き込みではありませんが、 『ボタン1、2を押したときにボタン3のイベントが発生する』と書いているようには どうしても思えないのですが。。。 |
1|2|3|4
次のページへ»